JDBC java数据库连接
a) 什么是JDBC 应用java程序 访问操作数据库 底层代码
b) JDBC访问数据库的核心思想【重点】
c) JDBC编程步骤【重点】
环境搭建:导入驱动jar包
i. 加载驱动 , 获取接口的实现类
ii. 获取connection对象 connection conn = driverManager.getConnection(url,username,password)
iii. 获取PreparedStatement执行sql语句 PreparedStatement pstm = conn.preparedstatement(String sql)
iv. 如果是查询的情况下 处理结果ResultSet
v. 关闭资源 close()
d) 动态参数
Sql = “insert into t_user values (?,?,?)”
PreparedStatement pstm = conn.preparedstatement(sql)
Pstm.setInt(1,123)
Pstm.setString(2,”suiyi”)
Pstm.setString(3,”yesuiyi”)
Pstm.executeUpdate()
1、 在你需要传递数据的位置?占位
2、 为占位符赋值
注意1:日期类型数据的转化
Java.util.Date java程序中使用的主要日期类型
Java.sql.Date JDBC 仅仅是操作时使用的日期
转化:创建util .Date
调用getTime()获取1970 至今的毫秒数
创建sql.Date 将毫秒数作为参数
注意2:主键问题
主键使用序列 自动增长
package com.a;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1. 导入外部的驱动包
//2. 加载驱动
Class.forName(“com.mysql.jdbc.Driver”);
//3. 建立连接 url:全球资源定位 ? :占位符
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/gongzi", "root", "123");
String sql = "select * from gongzi where money > ? and userid > ?";
//4. 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
ps.setDouble(1, 10000);
ps.setInt(2, 1003);
//5. 执行并获得结果集
ResultSet rs = ps.executeQuery();
while(rs.next()){
//System.out.println(rs.getInt(1)+"------"+rs.getString(2)+"-----"+rs.getDouble(3));
System.out.println(rs.getInt("userid")+"---"+rs.getString("username"));
}
rs.close();
ps.close();
conn.close();
}
}