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
目录结构如下图:
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
相关文章推荐
- Hibernate工具类和插入查询数据例子
- MyBatis 3中实现一对多的插入和查询
- mybatis动态条件查询和翻页查询的例子
- MyBatis直接执行SQL查询及批量插入数据
- Android DB类,支持MDB,SQLITE,SQLSERVER,支持查询、事务,对象直接插入和更新操作等
- 学习Java6(六) 嵌入式数据库Derby(2)一个基本的例子(建数据库、建表、插入数据、查询)
- MyBatis直接执行SQL查询及批量插入数据
- mybatis环境搭建、模糊查询、分页、增删改、事务处理
- JDBC访问Oracle数据库例子源代码,包括创建table,删除table,插入记录,删除记录,查询记录等
- 一个简单的Spring4和MyBatis事务的例子(很详细)
- Struts2+Ibatis+Spring.30(完整例子,含3.0事务配置,OSCache缓存配置,JreeChart配置,log4j日志输出Sql,对一个表实现完整的查询,批量删除,添加,更新)
- mybatis使用foreach批次插入,解决sequence只查询一次的问题
- MyBatis直接执行SQL查询及批量插入数据
- mybatis接口式的模糊查询、分页、增删改、事务处理
- oracle插入和查询日期型数据例子
- MyBatis 3中实现一对多的插入和查询
- 闲暇时间自己写的DB类,支持MDB,SQLITE,SQLSERVER,支持查询、事务,对象直接插入和更新操作等!(10.2更新)
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据
- MyBatis直接执行SQL查询及批量插入数据