mybatis3.2.7事务查询和插入例子

来源:互联网 发布:微博淘宝优惠券 编辑:程序博客网 时间:2024/06/08 19:20

系统环境jdk7,eclipse Version: Luna Release (4.4.0),


目录结构如下图:



Test.java源码:

package domain;  
      
import java.io.IOException;  
import java.io.Reader;  
import java.util.Date;

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.springdemo.usermgr.vo.SUser;
import com.springdemo.usermgr.vo.SUserMapper;

      
    public class Test {  
        public static void main(String[] args) throws IOException {  
            String resource = "config.xml";  
            Reader reader = Resources.getResourceAsReader(resource);  
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);  
            SqlSession session = ssf.openSession(false); //true 为自动提交事务

            try {  
                
                SUser SUser = (SUser) session.selectOne("selectSUser", 1);
                SUser SUser2 = session.selectOne("com.springdemo.usermgr.vo.SUserMapper.selectSUser", 2);
                System.out.println(SUser);  
                System.out.println(SUser2.getPwd());
                
                SUserMapper mapper = session.getMapper(SUserMapper.class);
                SUser blog = mapper.getSUser("2");
                System.out.println(blog.getUserName());
                SUser user3 = new SUser();  
                user3.setUserName("中文名zhou");  
                user3.setPwd("xxxx");  
                user3.setSignUpTime(new Date());
                System.out.println("插入前主键为:"+user3.getId());  
                mapper.insertSUser(user3);//插入操作  
                System.out.println("插入后主键为:"+user3.getId());
                session.commit(true);
            } catch (Exception e) {
                session.rollback(true);
                e.printStackTrace();  
            } finally {  
                session.close();  
            }  
        }  
    } 


SUser.java源码:

package com.springdemo.usermgr.vo;

import java.util.Date;



public class SUser {
    
    private Integer id;
    private String userName;
    private String pwd;
    private Date signUpTime;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public Date getSignUpTime() {
        return signUpTime;
    }
    public void setSignUpTime(Date signUpTime) {
        this.signUpTime = signUpTime;
    }
    

}


SUserMapper.java源码:
package com.springdemo.usermgr.vo;

 
   
public interface SUserMapper {   
    public int  insertSUser(SUser user);   
    public SUser getSUser(String name);   
}

config.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>  
    <typeAliases>  
        <typeAlias alias="SUser" type="com.springdemo.usermgr.vo.SUser" />  
    </typeAliases>  
    <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/test"/>
                <property name="username" value="root" />  
                <property name="password" value="pass" />  
            </dataSource>  
        </environment>  
    </environments>  
    <mappers>  
        <mapper resource="SUser.xml" />  
    </mappers>  
</configuration>


SUser.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.springdemo.usermgr.vo.SUserMapper">  
    <select id="selectSUser" parameterType="int" resultType="SUser">  
        select * from Suser where id = #{id}  
   </select>
    <select id="getSUser" parameterType="String" resultType="SUser">  
        select * from Suser where username = #{name}  
   </select>
     <insert id="insertSUser" parameterType="SUser">
      <selectKey resultType="int" keyProperty="id">
      SELECT LAST_INSERT_ID()
      </selectKey>
      insert into
      suser(userName,pwd,signUpTime)values(#{userName},#{pwd},#{signUpTime})
    </insert>      
</mapper> 


数据库使用mysql5.5版本,建表语句:

CREATE TABLE `suser` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(255) DEFAULT NULL,
  `pwd` varchar(255) DEFAULT NULL,
  `signUpTime` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ;



表中数据,无数据会报空值错误:



运行test.java的结果可能为:

com.springdemo.usermgr.vo.SUser@21ddc66e
2
2
插入前主键为:null
插入后主键为:5

0 0