一、JDBC
1.作用:使用java程序连接各种类型的数据库
2.原理:
a.DIverManager (类):驱动管理器
b.Connection (接口):连接对象
c.Statement (接口):命令对象
d.ResultSet (接口):结果集对象
(1)驱动管理器根据连接的数据库是那种类型选择合适的驱动进行安装
(2)连接对象负责在数据库和java程序之间建立桥梁,方便沟通
(3)命令对象发送sql语句到数据库进行执行
(4)如果执行的是查询语句,则由结果集将数据带回到java中
如果是增删改语句,会返回一个int数字,代表受影响行数
ps:PreparedStatement是Statement子接口,相比Statement具有安全性,高可维护性,高性能
二、JDBC技术步骤
1.加载驱动
2.建立连接
3.发送命令
4.处理结果
5.关闭资源
A:查询演示
public class ChaTest {
public static void main(String[] args) {
//查询学生的姓名,性别,出生日期
//1.创建对象
PreparedStatement ps=null;
ResultSet res=null;
try {
//2.创建SQL
String sql="select name,sex,bornDate from student";
//3.获取连接对象 再根据连接对象获取命令对象
ps=BaseBao.getConn().prepareStatement(sql);
//4.执行sql语句h
/*
* executQuery:执行查询语句
* executUpdate:执行增删改语句
* */
res=ps.executeQuery();
//5.处理结果
System.out.println("姓名\t姓名\t出生日期");
//next:判断结果集中是否还有未访问展示的数据
while (res.next()) {
System.out.println(
res.getString("name")+"\t"
+res.getString("sex")+"\t"
+res.getString("bornDate"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
//释放资源
BaseBao.close(ps, res);
}
}
}
PS:查询条件用 ? 代替
替换占位符下标从1开始
三、DAO模式
1.持久化:将程序中的数据在瞬时状态和持久状态间转换的机制即为数据持久化
2.主要持久化操作:保存、删除、修改、修改、查找、读取
3.DAO模式的组成部分
a.DAO接口
b.DAO实现类
c.实体类
d.数据库连接和关闭工具类
A.实现各种公共方法
public class BaseDao {
//创建公共参数
private static String driver;
private static String url;
private static String name;
private static String pwd;
static Connection conn=null;
static PreparedStatement ps=null;
//定义初始化读取数据的方法
public static void init(){
//创建配置文件对象
Properties p=new Properties();
//创建输入流 并且将文件路径告诉他
InputStream is=BaseDao.class.getClassLoader().getResourceAsStream("jdba.properties");
try {
//加载文件
p.load(is);
//读取参数并且给对应的属性赋值
driver=p.getProperty("d");
url=p.getProperty("u");
name=p.getProperty("n");
pwd=p.getProperty("p");
} catch (IOException e) {
e.printStackTrace();
}
}
//使用静态代码快自动执行init方法
static{init();};
//获取数据库连接方法
public static Connection getconn(){
//判断连接是否为空
if (conn==null) {
try {
Class.forName(driver);
conn=DriverManager.getConnection(url, name ,pwd);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
return conn;
}
//释放资源
public static void close(ResultSet res){
try {
if (res!=null) {
res.close();
}
if (ps!=null) {
ps.close();
}
if (conn!=null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//定义增删改通用方法
public static int update(String sql,Object[] o){
//定义返回值
int num=-1;
//创建命令对象
try {
ps=BaseDao.getconn().prepareStatement(sql);
//替换占位符:遍历数组按顺序替换占位符
for (int i = 1; i <= o.length; i++) {
ps.setObject(i, o[i-1]);
}
//执行sql语句
num=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
}
Properties 类
properties配置文件:java中的配置文件常为properties文件,格式为文本文件,文件内容的格式是 “键=值” 格式
步骤:
1.添加properties文件
2.添加文件内容
d=com.mysql.jdbc.Driver
u=jdbc:mysql://localhost:3306/myschool
n=root
p=mysql