头歌——Java高级特性 - JDBC(上)

第1关:JDBC连接数据库

package jdbc;

import java.sql.*;

public class jdbcConn {
	public static void getConn() {
		try {
			// 1.注册驱动
			Class.forName("com.mysql.jdbc.Driver");

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		/********** End **********/

		/********** Begin **********/
		Connection conn = null;
		Statement statement = null;
		try {
			// 2.建立连接并创建数据库和表

			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "123123");

			String sql1 = "drop database if exists mysql_db;";
			String sql2 = "create database mysql_db;";
			statement = conn.createStatement();
			statement.execute(sql1);
			statement.execute(sql2);

			statement.execute("use mysql_db");

			String sql3 = "create table student(id int not null,name varchar(20),sex varchar(4),age int)";

			statement.execute(sql3);
		} catch (Exception e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} finally {
			try {
				if (statement != null)
					statement.close();
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}
}

第2关:JDBC对表中数据的操作 

package jdbc;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class jdbcInsert {
	public static void insert() {
		/********** Begin **********/
		try {
			// 加载驱动
			Class.forName("com.mysql.jdbc.Driver");

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		/********** End **********/

		Connection conn = null;
		PreparedStatement statement = null;
		/********** Begin **********/
		// 连接并插入数据
		try {
			String url = "jdbc:mysql://localhost:3306/mysql_db?useUnicode=true&characterEncoding=utf8";
			String user = "root";
			String password = "123123";
			conn = DriverManager.getConnection(url, user, password);

			String sql1 = "insert into student(id,name,sex,age) values (1,'张三','男',19),(2,'李四','女',18),(3,'王五','男',20)";

			statement = conn.prepareStatement(sql1);
			statement.executeUpdate();
			String sql2 = "select * from student";
			ResultSet rs = statement.executeQuery(sql2);

			Student student = null;
			while (rs.next()) {
				int id = rs.getInt(1);
				String name = rs.getString(2);
				String sex = rs.getString(3);
				int age = rs.getInt(4);
				student = new Student(id, name, sex, age);
				System.out.println(
						student.getId() + " " + student.getName() + " " + student.getSex() + " " + student.getAge());
			}

		} catch (SQLException e) {
			e.printStackTrace();
		}
		/********** End **********/
		finally {
			try {
				if (statement != null)
					statement.close();
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

第3关:JDBC事务

package jdbc;

import java.sql.*;

public class jdbcTransaction {

    public static void transaction(){
        try {
            Class.forName("com.mysql.jdbc.Driver" );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        Connection conn = null;
        PreparedStatement ps = null;
        /**********  Begin   **********/
        //连接数据库并开启事务
        try {
           String url="jdbc:mysql://localhost:3306/mysql_db?useUnicode=true&characterEncoding=utf8";
           conn =DriverManager.getConnection(url,"root","123123");
           conn.setAutoCommit(false);

           String sql1="insert into student(id,name,sex,age) values(4,'赵六','女',21)";
           ps=conn.prepareStatement(sql1);
           ps.executeUpdate();
           conn.commit();

           String sql2="daj;ljd";
           ps=conn.prepareStatement(sql2);
           ps.executeUpdate();
           conn.commit();

           String sql3="select * from student";
           ResultSet rs=ps.executeQuery(sql3);

           Student student = null;
           while(rs.next())
           {
               int id=rs.getInt(1);
               String name=rs.getString(2);
               String sex =rs.getString(3);
               int age=rs.getInt(4);

               student =new Student(id,name,sex,age);
               System.out.println(student.getId() + " " + student.getName() + " " + student.getSex() + " " + student.getAge());
           }









        } catch (SQLException e) {
            try {
                //事务回滚
                conn.rollback();


            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
        /**********  End   **********/
        finally {
            try {
                if(ps!=null)
                    ps.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_62440328/article/details/128331526
今日推荐