系统环境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