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中方法即可。

本文来自企鹅号 - 紫樱阁主媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏yukong的小专栏

【SpringBoot2.0系列11】SpringBoot之@Elasticsearch完成CURD

【SpringBoot系列02】SpringBoot之使用Thymeleaf视图模板

1112
来自专栏美团技术团队

Spring MVC注解故障追踪记

Spring MVC是美团点评很多团队使用的Web框架。在基于Spring MVC的项目里,注解的使用几乎遍布在项目中的各个模块,有Java提供的注解,如:@O...

3687
来自专栏思考的代码世界

Python网络数据采集之使用API|第03天

1344
来自专栏令仔很忙

工厂模式的Assembly.Load(path).CreateInstance(className)出错解决方法

  下面咱们先了解Assembly.Load(path).CreateInstance(className)

522
来自专栏专注研发

PageHelper分页插件及通用分页js

物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的...

541
来自专栏葡萄城控件技术团队

ASP.NET MVC 5 - 给数据模型添加校验器

在本节中将会给Movie模型添加验证逻辑。并且确保这些验证规则在用户创建或编辑电影时被执行。 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DR...

1767
来自专栏程序猿DD

程序员你为什么这么累【续】:编码习惯之参数校验和国际化规范

今天我们说说参数校验和国际化,这些代码没有什么技术含量,却大量充斥在业务代码上,很可能业务代码只有几行,参数校验代码却有十几行,非常影响代码阅读,所以很有必要把...

1807
来自专栏前端侠2.0

asp。net5的依赖注入 原

昨天读asp.net5的doc,看到了configure的配置时,提到在controller中访问配置就是通过依赖注入的。asp.net5的很多功能都通过依赖注...

511
来自专栏逍遥剑客的游戏开发

Nebula3学习笔记(5): IO系统

1664
来自专栏blackpiglet

如何使用 Gin 和 Gorm 搭建一个简单的 API 服务 (一)

  今天工作上的事情比较多,所以就把工作中参考的英文文章搬运过来了,这是我参考文章的链接: Developing a simple CRUD API with...

805

扫码关注云+社区