本文主要介绍了如何使用mybatis进行简单的数据库操作。本人使用的是mybatis3.05。
1.创建数据库表(User表)
CREATE TABLE `NewTable` (`userId` bigint(20) NOT NULL AUTO_INCREMENT ,`userName` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`password` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`comment` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARY KEY (`userId`),UNIQUE INDEX `UQ_User_userName` (`userName`) USING BTREE)
package com.mybatis.config;public class User { private int userId; private String userName; private String password; private String comment; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; }}
package com.mybatis.config;import java.util.List;public interface UserDao { public int insert(User user); public int update(User user); public int delete(String userName); public List<user> selectAll(); public int countAll(); public User findByUserName(String userName);}</user>
<?xml version="1.0" encoding="UTF-8" ?> <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>
<?xml version="1.0" encoding="UTF-8" ?><configuration> <environments default="development"> <environment id="development"> <transactionmanager type="JDBC"></transactionmanager> <datasource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/hlp?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"></property> <property name="username" value="root"></property> <property name="password" value="1234"></property> </datasource> </environment> </environments> <mappers> <mapper resource="com/mybatis/config/UserDaoMapper.xml"></mapper> </mappers></configuration>
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;public class UserDaoTest { @Test public void 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(); }}</user></user>