本文主要介绍了如何使用mybatis进行简单的数据库操作。本人使用的是mybatis3.05。

1.创建数据库表(User表)
CREATETABLE `NewTable` (
`userId` bigint(20) NOTNULL AUTO_INCREMENT ,
`userName` varchar(30) CHARACTERSET utf8 COLLATE utf8_general_ci NOTNULL ,
`password` varchar(80) CHARACTERSET utf8 COLLATE utf8_general_ci NOTNULL ,
`comment` varchar(250) CHARACTERSET utf8 COLLATE utf8_general_ci NULLDEFAULTNULL ,
PRIMARYKEY (`userId`),
UNIQUEINDEX `UQ_User_userName` (`userName`) USING BTREE
)

2.2. 创建实体类

package com.mybatis.config;

publicclass User {
privateint userId;
private String userName;
private String password;
private String comment;
publicint getUserId() {
return userId;
}
publicvoid setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
publicvoid setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getComment() {
return comment;
}
publicvoid setComment(String comment) {
this.comment = comment;
}
}

3. 定义数据访问接口

package com.mybatis.config;

import java.util.List;

publicinterface UserDao {

    publicint insert(User user);

    publicint update(User user);

    publicint delete(String userName);

    public List<User> selectAll();

    publicint countAll();

    public User findByUserName(String userName);
}

4.创建MyBatis映射文件(UserDaoMapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.config.UserDao">
<select id="countAll" resultType="int">
select count(*) c from user;
</select> <select id="selectAll" resultType="com.mybatis.config.User">
select * from user order by userName asc
</select> <insert id="insert" parameterType="com.mybatis.config.User">
insert into user(userName,password,comment) values(#{userName},#{password},#{comment})
</insert> <update id="update" parameterType="com.mybatis.config.User">
update user set userName=#{userName},password=#{password},comment=#{comment} where userName=#{userName}
</update> <delete id="delete" parameterType="int">
delete from user where userName=#{userName}
</delete> <select id="findByUserName" parameterType="String" resultType="com.mybatis.config.User">
select * from user where userName=#{userName}
</select>
</mapper>

5. 创建mybatis配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/hlp?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mybatis/config/UserDaoMapper.xml"/>
</mappers>
</configuration>

6. 编写测试代码

package com.mybatis.config;

import java.io.Reader;
import java.util.Iterator;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; publicclass UserDaoTest {
@Test
publicvoid userDaoTest() throws Exception
{
String resource ="MyBatis-Configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(reader); SqlSession session = factory.openSession();
UserDao userDao = session.getMapper(UserDao.class); User user =new User();
user.setUserName("hongye");
user.setPassword("123456");
user.setComment("备注"); userDao.insert(user);
System.out.println("记录条数:"+userDao.countAll()); List<User> users = userDao.selectAll();
Iterator<User> iter = users.iterator();
while(iter.hasNext()){
User u = iter.next();
System.out.println("用户名:"+u.getUserName()+"密码:"+u.getPassword());
} user.setComment("comment");
userDao.update(user);
User u = userDao.findByUserName("hongye");
System.out.println(u.getComment()); userDao.delete("hongye");
System.out.println("记录条数:"+userDao.countAll()); session.commit();
session.close();
}
}

最新文章

  1. enum 与 enum class
  2. JavaScript字符串排序localeCompare()笔记
  3. 贪心算法-Huffman编码
  4. How Tomcat works — 八、tomcat中的session管理
  5. ASP.Net Core-TagHelpers
  6. 走进WCF一 (异常如此多娇,引无数码农竞折煞)
  7. 破坏之王——ddos攻击与防范 读书笔记
  8. RTP 包格式 详细解析
  9. WPF技术触屏上的应用系列(一): 3D 图片(照片)墙、柱面墙(凹面墙或者叫远景墙、凸面墙或者叫近景墙)实现
  10. oracle 选择最频繁出现之前,5文章数据
  11. Java传参
  12. 文件上传----FTP部署
  13. Hibernate map enum type
  14. icon button样式(类似windows桌面图标)
  15. 笔记 oracle 创建联合主键
  16. 697. Degree of an Array
  17. Eclipse的个性化设置
  18. Coxph model Pvalue Select2
  19. Lazy JSF Primefaces Datatable Pagination
  20. 【PTA 天梯赛】L2-028 秀恩爱分得快(模拟)

热门文章

  1. dp、sp 转换为 px 的工具类
  2. mssql定时执行作业。
  3. 表被占用住,提示资源正忙的处理方式。kill掉表的操作。
  4. spring 配置触发器 (类似于定时任务)
  5. MySQL重构查询的方式
  6. C#数字图像处理的3种方法
  7. Python自动化运维之6、函数装饰器
  8. JQuery的$和其它JS发生冲突的快速解决方法
  9. [51单片机]18B20驱动函数
  10. New ipad install Metasploit(New ipad 安装Metasploit)