mysql的ORM
ORM=Object Relationship Database Mapping
对象和关系数据库的映射
简单说,一个对象,对应数据库里的一条记录
1.
根据id返回一个Hero对象
提供方法get(int id)
返回一个Hero对象
返回一个Hero对象
package test;
import bean.Hero;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class add
{
//把一个Hero对象插入到数据库中
public static void add(Hero h){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="INSERT INTO hero VALUES (?,?,?,?)";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql);
){
ps.setInt(1,h.id);
ps.setString(2,h.name);
ps.setFloat(3,h.hp);
ps.setInt(4,h.damage);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
//把这个Hero对象对应的数据删除掉
public static void delete(Hero h){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="DELETE FROM hero where id=?";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql);
){
ps.setInt(1,h.id);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
//更新这条Hero对象
public static void update(Hero h){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="UPDATE hero SET name=?,hp=?,damage=? WHERE id=?";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql);
){
ps.setString(1,h.name);
ps.setFloat(2,h.hp);
ps.setInt(3,h.damage);
ps.setInt(4,h.id);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
//把所有的Hero数据查询出来,转换为Hero对象后,放在一个集合中返回
public static List<Hero> list(){
List<Hero> heroes=new ArrayList<>();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="SELECT * FROM hero ";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql);
){
ResultSet rs=ps.executeQuery();
while (rs.next()){
Hero h=new Hero();
h.id=rs.getInt(1);
h.name=rs.getString(2);
h.hp=rs.getFloat(3);
h.damage=rs.getInt(4);
heroes.add(h);
}
}
catch (SQLException e) {
e.printStackTrace();
}
return heroes;
}
public static Hero get(int id){
Hero h=new Hero();
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="SELECT * FROM hero WHERE id=?";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql);
){
ps.setInt(1,id);
ResultSet rs=ps.executeQuery();
if (rs.next()){
h.id=rs.getInt(1);
h.name=rs.getString(2);
h.hp=rs.getFloat(3);
h.damage=rs.getInt(4);
System.out.println(h.name);
}
}
catch (SQLException e) {
e.printStackTrace();
}
return h;
}
public static void main(String[] args) {
//先导入jar包mysql-connector-java-5.1.39-bin.jar
//初始化驱动
List<Hero> list=list();
System.out.println("Total:"+list.size());
Hero h=new Hero();
h.id=5;h.name="大柱";h.hp=1000f;h.damage=3000;
add(h);
list=list();
System.out.println("Total:"+list.size());
h=get(1);
h.name="猴子";
update(h);
get(1);
h=get(5);
delete(h);
list=list();
System.out.println(list.size());
}}
浙公网安备 33010602011771号