Mysql&Jdbc学习笔记
Mysql学习笔记(九)
Mysql与JDBC
Jdbc: Java database connectivity Java程序和数据库连接, 是一种用于执行SQL语句的Java API。
执行流程:
连接数据源,如:数据库。
为数据库传递查询和更新指令。
处理数据库响应并返回的结果
(1)JDBC 编程步骤
1.1)下载所需数据库jar包并导入项目
jdbc--1①在Mysql官网上下载所需的jar包
jdbc--1②并添加到java项目中,在项目中新建一个lib文件夹,并把解压好的.jar文件放到lib文件夹里。右键点击mysql-connector-java-5.1.46.jar,选择build path,再选择Add to build path,即完成。
1.2)加载驱动程序
加载驱动程序的方法有三种
① Class.forName("com.mysql.jdbc.Driver");
② DriverManager.registerDriver(new com.mysql.jdbc.Driver());
③ System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
1.3)获取数据库连接
获取数据库连接有两种方式
①url模式:jdbc协议:数据库类型://数据库的ip地址:数据库的服务端口号,数据库
String url="jdbc:mysql://localhost:3306/database";
String user="username";
String password="password";
Connection connection = DriverManager.getConnection(url, user, password);
② MysqlDataSource dataSource=new MysqlDataSource();
dataSource.setUser(user);
dataSource.setPassword(password);
dataSource.setURL(url);
Connection connection2=dataSource.getConnection();
1.4)创建Statement/PreparedStatement对象
PreparedStatement是预编译的, Preparedstatement支持批处理,对于批量处理可以大大提高效率。Statement每次执行sql语句,相关数据库都要执行sql语句的编译。对于只执行一次的SQL语句选择Statement是最好的。
①创建 Statement
String sql="select * from student";
Statement statement= connection.createStatement();
ResultSet rSet = statement.executeQuery(sql);;
②创建 PreparedStatement
String sql = "select * from student where sno = ? ";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "s011");
ResultSet rSet = preparedStatement.executeQuery();
1.5)执行SQL语句并处理结果集(ResultSet)
while (rSet.next()) {
System.out.print(rSet.getString(1)); //取出表中的第一条数据的第1个字段所对应的数据
System.out.print(rSet.getString(2)); //取出表中的第一条数据的第2个字段所对应的数据
System.out.print(rSet.getString(3)); //取出表中的第一条数据的第3个字段所对应的数据
System.out.print(rSet.getString(4)); //取出表中的第一条数据的第4个字段所对应的数据
System.out.print(rSet.getString(n)); //取出表中的第一条数据的第n个字段所对应的数据
System.out.println();
System.out.println("-------------------");
}
1.6)关闭连接
关闭结果集 ResultSet rSet
rSet.close();
关闭Statement statement
statement.close();
关闭数据库连接Connection connection
connection.close();
注:此例子所用的数据库在Mysql笔记(三)中