JDBC学习笔记
一、JDBC简介
JDBC全称为Java Data Connectivity(Java数据库连接)
推荐使用
二、使用详解
1、JDBC常用接口
2、JDBC编程步骤
- 加载驱动程序:Class.forName(driverClass);
- 加载Mysql驱动:Class.dorName("com.mysql.jdbc.Driver");
- 加载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");
- 获得数据库连接:DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/hongxin","root","root");
- 创建Statement对象:conn.createStatement();
public class DBUtil {
private static final String URL="jdbc:mysql://127.0.0.1:3306/imooc";
private static final String USER="root";
private static final String PASSWORD="root";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//2、获得数据库的连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
//3、通过数据库的连接操作数据库,实现增删改查
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess");
while (rs.next()){
System.out.println(rs.getString("user_name")+','+rs.getInt("age"));
}
}
}
3、执行SQL语句
4、管理结果集
5、事务管理
三、高级应用
1、分页
2、高级查询
3、高级函数使用
四、整理总结
采用MVC三层架构
- View 视图层
- Control 控制层
- Model 模型层
- DB 数据库
从下往上,先读懂数据库,然后映射我们的模型,继而控制层、视图层
在设置生日的时候,用的是java.util.Date
下的Date转换成java.sql.Date
下的Date,而查询的时候传出来的Date就不需要转化了,java.util.Date
和java.sql.Date
两者的关系如下:
搭建控制层
各自实现所调用的方法:
在test中进行测试
- 测试查询功能
package jdbc.test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jdbc.action.GoddessAction;
import jdbc.model.Goddess;
public class TestAction {
public static void main(String[] args) throws Exception {
GoddessAction action=new GoddessAction();
//查询
List<Goddess> result=action.query();
//将打印的内容反映到控制台上
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i).getId()+
":"+result.get(i).getUser_name());
}
- 测试添加功能
package jdbc.test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jdbc.action.GoddessAction;
import jdbc.model.Goddess;
public class TestAction {
public static void main(String[] args) throws Exception {
GoddessAction action=new GoddessAction();
Goddess g=new Goddess();
//新增
g.setUser_name("小青");
g.setSex(1);
g.setAge(25);
g.setBirthday(new Date());
g.setEmail("xiaoqing@163.com");
g.setMobile("15688888888");
g.setIsdel(0);
g.setId(7);
action.add(g);
//查询
/*
List<Goddess> result=action.query();
//将打印的内容反映到控制台上
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i).getId()+
":"+result.get(i).getUser_name());
}
*/
}
}
- 测试更新
package jdbc.test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jdbc.action.GoddessAction;
import jdbc.model.Goddess;
public class TestAction {
public static void main(String[] args) throws Exception {
GoddessAction action=new GoddessAction();
Goddess g=new Goddess();
//新增
g.setUser_name("小青1");
g.setSex(1);
g.setAge(25);
g.setBirthday(new Date());
g.setEmail("xiaoqing@163.com");
g.setMobile("15688888888");
g.setIsdel(0);
g.setId(4);
action.edit(g);
//查询
List<Goddess> result=action.query();
//将打印的内容反映到控制台上
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i).getId()+
":"+result.get(i).getUser_name());
}
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1jwWD5p-1622286643083)(C:\Users\Lenovo\AppData\Local\Temp\1622281873331.png)]
- 测试删除
package jdbc.test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jdbc.action.GoddessAction;
import jdbc.model.Goddess;
public class TestAction {
public static void main(String[] args) throws Exception {
GoddessAction action=new GoddessAction();
Goddess g=new Goddess();
//新增
// g.setUser_name("小青1");
// g.setSex(1);
// g.setAge(25);
// g.setBirthday(new Date());
// g.setEmail("xiaoqing@163.com");
// g.setMobile("15688888888");
// g.setIsdel(0);
// g.setId(4);
action.del(4);
//查询
List<Goddess> result=action.query();
//将打印的内容反映到控制台上
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i).getId()+
":"+result.get(i).getUser_name());
}
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hutQrLX-1622286643084)(C:\Users\Lenovo\AppData\Local\Temp\1622282104883.png)]
- 测试单个查询
package jdbc.test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jdbc.action.GoddessAction;
import jdbc.model.Goddess;
public class TestAction {
public static void main(String[] args) throws Exception {
GoddessAction action=new GoddessAction();
Goddess g=new Goddess();
//新增
/*
g.setUser_name("小青1");
g.setSex(1);
g.setAge(25);
g.setBirthday(new Date());
g.setEmail("xiaoqing@163.com");
g.setMobile("15688888888");
g.setIsdel(0);
g.setId(5);
*/
// action.add(g);
// action.edit(g);
// action.del(4);
List<Map<String, Object>> params=new ArrayList<Map<String,Object>>();
Map<String, Object> map=new HashMap<String, Object>();
map.put("name", "user_name");
map.put("rela", "=");
map.put("value", "'小青'");
params.add(map);
List<Goddess> result=action.query(params);
//查询
// List<Goddess> result=action.query();
//将打印的内容反映到控制台上
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i).getId()+
":"+result.get(i).getUser_name());
}
}
}
- 搭建视图层