您的位置:首页 > 其它

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

2014-09-11 15:40 225 查看
系统环境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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: