Java数据库查询

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结果的其他操作....
    }
}
发布了24 篇原创文章 · 获赞 7 · 访问量 8246

猜你喜欢

转载自blog.csdn.net/yang_zzu/article/details/103520341