Java持久化数据的方式——JDBC&ORM&JPA
JDBC
什么是JDBC?
有了JDBC之后的好处
JDBC完成用户的CURD
jdbc.properties:配置连接数据库的四大基本参数。
className=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root
User实体类
import lombok.Data;
@Data
public class User {
private Integer uid;
private String uname;
private String pwd;
private Integer sex;
private Integer age;
}
sql建表语句
CREATE TABLE `users` (
`uid` int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`uname` varchar(255) DEFAULT NULL COMMENT '用户姓名',
`pwd` varchar(255) DEFAULT NULL COMMENT '用户密码',
`sex` int(1) DEFAULT NULL COMMENT '用户性别,1:男,0:女',
`age` int(3) DEFAULT NULL COMMENT '用户年龄',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
CURD代码
package cn.xxxq.jdbc.statement;
import cn.xxxq.jdbc.domain.User;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
/**
* 使用Statement对象执行增删改查SQL语句,有SQL注入的风险。
*/
public class JDBC_CURD_Statement {
private static String className;
private static String url;
private static String username;
private static String password;
/*
使用静态代码块在类加载的时候读取外部属性文件
*/
static {
InputStream in = JDBC_CURD_Statement.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
try {
properties.load(in);
className = properties.getProperty("className");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in!=null)
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
selectAllUser();
// insert();
// update();
// delete();
}
/**
* 查询所有用户
*/
public static void selectAllUser(){
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
//注册驱动
Class.forName(className);
//获取连接对象
connection = DriverManager.getConnection(url, username, password);
//获取SQL执行对象
statement = connection.createStatement();
/*执行SQL语句*/
String sql = "select * from users";
resultSet = statement.executeQuery(sql);
while (resultSet.next()){
int uid = resultSet.getInt("uid");
int sex = resultSet.getInt("sex");
int age = resultSet