myBatis实例应用(基于配置文件)

来源:互联网 发布:网络已连接无法上网 编辑:程序博客网 时间:2024/05/18 19:19

今天初步学习了下myBatis框架,现在把学习过程总结下。

一、创建数据库表。

DROP TABLE IF EXISTS `tb_user`;CREATE TABLE `tb_user` (  `id` int(10) NOT NULL AUTO_INCREMENT,  `username` varchar(40) DEFAULT NULL,  `password` varchar(40) DEFAULT NULL,  `email` varchar(40) DEFAULT NULL,  `age` int(10) DEFAULT NULL,  `sex` char(2) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


二、创建项目

1、项目结构图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2、创建实体类User

package com.firstbatis.entity;public class User {private int id;private String username;private String password;private String sex;private String email;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}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 getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

3、创建UserDao接口

package com.firstbatis.dao;import java.util.List;import com.firstbatis.entity.User;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);}


4、创建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.firstbatis.dao.UserDao"><select id="countAll" resultType="int">select count(*)  from tb_user</select><select id="selectAll" resultType="com.firstbatis.entity.User">select * from tb_user order by username asc</select><insert id="insert" parameterType="com.firstbatis.entity.User">insert into tb_user(username,password,email,sex,age) values(#{username},#{password},#{email},#{sex},#{age})</insert><update id="update" parameterType="com.firstbatis.entity.User">update tb_user set username=#{username},password=#{password},email=#{email},sex=#{sex},age=#{age} where username=#{username}</update><delete id="delete" parameterType="String">delete from tb_user where username=#{username}</delete><select id="findByUserName" parameterType="String" resultType="com.firstbatis.entity.User">select * from tb_user where username=#{username}</select></mapper>


5、创建MyBatis-Configuration.xml 文件

<?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/bk_shop?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><mapper resource="com/firstbatis/dao/UserDaoMapper.xml"/></mappers></configuration>


6、创建主测试类

package com.firstbatis.test;import java.io.Reader;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 com.firstbatis.dao.UserDao;import com.firstbatis.entity.User;public class MybatisHandler {public static void main(String[] args) 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("zhaozp");user.setPassword("test1234");user.setEmail("xxxx@qq.com");user.setSex("男");user.setAge(24);userDao.insert(user);System.out.println("数据库中的记录数:" +userDao.countAll());User usn = userDao.findByUserName("zhaozp");if(usn!=null){System.out.println("检索用户信息["+usn.getId()+","+ usn.getUsername()+","+ usn.getPassword()+","+ usn.getEmail()+","+ usn.getAge()+","+ usn.getSex());}User updUser = new User();updUser.setUsername("chensh");updUser.setPassword("update");updUser.setEmail("zzp@163.com");updUser.setSex("女");updUser.setAge(26);List<User> list = userDao.selectAll();for(int i=0;i<list.size();i++){User us=list.get(i);System.out.println("用户信息"+i+"["+us.getId()+","+ us.getUsername()+","+ us.getPassword()+","+ us.getEmail()+","+ us.getAge()+","+ us.getSex());}userDao.delete("zhaozp");System.out.println("执行删除后数据库中的记录数:" + userDao.countAll());session.commit();}}