java中运用mybatis进行数据库操作

目前在java项目中不论是web项目还是长连接的tcp/udp/websocket中,mytatis的使用已经越来越广,很多开发攻城狮都清楚ssh框架,这里的h就是hibernate,不过随着时间的进展,使用得更多的则是ibatis,今天要谈的则是mytatis。一般而言,mytatis其实就是ibatis演化而来的,于是这里自然要把ibatis和mytatis进行比较。

1 映射的条件已经不同。

ibatis中根元素是sqlMapConfig,mybatis中是configuration。

ibatis中是使用sqlMap元素,mybatis中是使用mappers元素。

2 配合spring框架的时候,配置也不同了。

3 mybatis支持批量操作,xml配置foreach即可。

4 mybatis中$和#的区别

我想我们原来都传单个值的时候都是用到#号,但$这个符号也是可以进行传值的,但$这个符合是动态传入某一个值,或者一个结果集。

而$这个符号会导致sql注入的问题,想想看这样的一个场景,因为#是只能传一个值进去,但$可以传一大串东西今天,那么我们对$中传入的值将不可控,故会发送sql注入的问题。

使用方式:

1 eclipse安装mytatis

下载myBatis生成pojo插件,得到features和plugins即可,将两者赋值到eclipse软件对应点features和plugins中

2 重新打开eclipse建立三种配置文件

(1) configuration.xml 用于配置数据库访问连接配置和表操作xml配置mappers

(2) dataBase.properties 用于配置数据库模块的参数

(3) Model.xml 中Model代表某个表的各种操作

三者放置src/game/conf目录下,受篇幅原因,不在多讲,私下沟通即可。

(5) 在Model.xml编写sql语句,简单实例如下

(6) 在IUserOperation.java中声明该种查询的方法

public List selectModelByID(String user_id); 注意函数名字和sql语句中的配置保持一致

(7) 执行static进行加载mybatis数据库配置

static {

try {

reader = Resources.getResourceAsReader("com/game/conf/Configuration.xml");

sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

} catch (Exception e) {

e.printStackTrace();

}

}

(8) Dao中实现该方法即可

public Model selectModelByID(String user_id){

SqlSession session = sqlSessionFactory.openSession();

try {

IModelOperation userOperation = session

.getMapper(IModelOperation.class);

List gameData = userOperation.selectModelByID(user_id);

System.out.println("count:"+gameData.size());

for(Model data : gameData) {

System.out.println("uid:"+data.getUser_id()+";success_count"+data.getGame_success_count());

}

} finally {

session.close();

}

return null;

}

(9) 最后在逻辑中调用Dao中方法即可。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171209G09GUP00?refer=cp_1026

扫码关注云+社区