前言
复习一下数据库的连接
关于连接数据库,主要是四个参数,
- 加载驱动
- 获取连接
- 建立连接需要的用户账号和密码;
如果不使用ben配置,基础写法如下
正文
准备数据库,以msql数据库为例
- 创建库
- 个人定义库为 myLibrary
- 定义表为user
- 定义账号为 root
- 定义密码为123456
- 定义连接为本地连接127.0.0.1连接地址可在数据库里面更改
user表部分
@Data
public class User {
private String Id; //id为主键自增.
private String Name;
private String Sex;
private String Age;
User(String Name, String Sex, String Age) {
this.Id = null;
this.Name = Name;
this.Sex = Sex;
this.Age = Age;
}
}
JDBC部分
public class jdbcTest {
step1
私有的创建连接
step2
增删改查
step3
占位符添加条件增删改查
step4
关闭连接
}
JDBC 建立连接
private static Connection getConn()
// 加载驱动注解
String driver = "com.mysql.jdbc.Driver";
// url连接地址 本地 127.0.0.1 地址 后面跟的myLibrary是我的库名字 后面默认为utf8格式 库里面有个表user
String url = " jdbc:mysql://127.0.0.1:3306/myLibrary?useUnicode=true&characterEncoding=utf-8";
// 数据库连接的账号
String username = "root";
// 数据库连接密码
String password = "123456";
// 定义连接类型变量conn
Connection conn = null;
try {
// 加载驱动
Class.forName(driver);
// 建立连接
conn = (Connection) DriverManager.getConnection(url, username, password);
if(conn != null){
// 输出连接信息
out.println("数据库连接成功!");
}else{
// 输出连接信息
out.println("数据库连接失败!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
JDBC增加插入方法
private static int insert(User user) {
// 调用方法获得连接
Connection conn = getConn();
// 定义执行语句变量
PreparedStatement pstmt;
// 定义返回结果参数变量
int i = 0;
// 定义一条执行语句,占用部分用?占位符
String sql = "insert into user(Name,Sex,Age) values(?,?,?)";
try {
// 从连接里面获取一条执行语句
// Statement stat = conn.createStatement();
// 防止sql注入生成PreparedStatement
// PreparedStatement pstmt = conn.prepareStatement("把sql语句放到构造方法,执行执行语句");
// 直接获取PreparedStatement
pstmt = (PreparedStatement) conn.prepareStatement(sql);
// 占位符三个
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getSex());
pstmt.setString(3, user.getAge());
// 执行执行语句获取插入成功数量
i = pstmt.executeUpdate();
// 关闭连接,也可以封装关闭连接方法调用关闭连接方法执行,直接写了
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
// 关闭连接
finally {
closelianjie(pstmt,conn)
}
return i;
}
JDBC增加update修改方法
private static int update(User user) {
Connection conn = getConn();
int i = 0;
String sql = "update user set name='" + user.getname() + "' where id=user.getid ";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("更改行数为: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
JDBC增加select搜索方法
private static Integer getAll() {
Connection conn = getConn();
String sql = "select * from user";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement)conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String id = rs.getStrin(id);
String name = rs.getString(name)
String sex = rs.getString(sex)
System.out.println("ID:"+id+"Name:"+name+"SEX:"+sex);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
JDBC增加删除方法
private static int delete(Int id) {
Connection conn = getConn();
int i = 0;
String sql = "delete from students where id='" + id+ "'";
PreparedStatement pstmt;
try {
pstmt = (PreparedStatement) conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
这个类完成了, 需要使用的时候直接调用其中方法传参即可