java数据库查询
通用类
public abstract class BaseService<T, ID> extends QueryService<T>{
private.......
private......
}
1. 通过继承 BaseService
这个类是系统生成的,使用的是框架的jar包
下面就是自己写的查询操作
public class StudentService extends BaseService{
public JSONObject getStudentName(String id){
//函数的返回类型是 json 格式
//sql 语句
String sql = "select s.name,s.age from student s where s.id = :id";
//定义一个map集合,接收,查询出来的内容
List<Map> maps = null;
//定义一个map,用于返回数据
Map<String,String> result = new HashMap<String,String>();
//定义一个map
HashMap map = new HashMap();
//赋值操作
map.put("id",id);
try{
//执行sql
maps = this.buildSqlHelper().setSql(sql,map).listMap();
//maps存储的是查询出来的数据,可以后续进行业务逻辑操作
......
}catch{
//异常处理
......
}
return json;
}
}
如果是插入数据库的操作
String sql = "insert into student(id,name,age) values(:id, :name, : age)";
map.put("id",id);
map.put("name",name);
map.put("age",age);
2.使用 EntityManager
public class StudentService extends BaseService{
public Map<Stirng, List<String>> getStudent(String studentResult,String id){
//存储结果map
Map<String,List<String>> studentMap = new HashMap<String, List<String>();
//sql
String sql = "select s.name,s.age from student s where s.id="+id;
try{
//执行 sql
Query query = entityManager.createNativeQuery(sql);
List result = query.getResultList();
studentMap.put(studentResult, result);
}catch{
e.printStackTrace();
}
return studentMap;
}
}
如果是插入数据库的操作
String sql = "insert into student(id, name, age) values('"+id+"','"+name"','"+age"')";
Query query = entityManager.createNativeQuery(sql);
//执行 query 语句
int s = query.executeUpdate();
3.简单粗暴的直接在类里面进行,这种方式适合测试的时候使用,不适合生产
public class Studetn{
private Database db = new DataBase();
public Student getStudent(String id){
Class.forName("数据库驱动");
Connection connection = null;
connection = DriverManager.getConnection("数据库地址:数据库","user","password");
PreparedStatement ps = null;
ResultSet resultSet = null;
//sql 语句
String sql = select s.name,s.age from student s where id=?";
//连接
//connection = db.getConnection();
//预编译
ps = connection.prepareStatement(sql);
//设置参数
ps.setString(1,id);
//执行
resultSet = ps.executeQuery();
result结果的其他操作....
}
}