官方下载
https://github.com/mybatis/mybatis-3/releases
整个程序结构如下:
1 准备测试用的数据库表
创建表t_role并添加测试数据
CREATE TABLE `t_role` (
`id` int(10) NOT NULL,
`rolename` varchar(255) DEFAULT NULL,
`note` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of t_role
-- ----------------------------
INSERT INTO `t_role` VALUES ('4', 'wangbo', null);
INSERT INTO `t_role` VALUES ('2', 'zhuorui', '222');
INSERT INTO `t_role` VALUES ('3', 'wujun', '333');
2 引用对应的jar包
3 添加log4j.properties
将log4j.properties添加到src下
log4j.rootLogger=DEBUG, stdout,logfile
og4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] \n %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender log4j.appender.logfile.MaxFileSize=1024KB log4j.appender.logfile.MaxBackupIndex=10 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.File=logs/main.log log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] \n %m%n |
4 添加pojo类
public class Role {
private int id;
private String rolename;
private String note;
public int getId() {return id;}
public void setId(int id) {this.id = id;}
public String getRolename() {return rolename;}
public void setRolename(String rolename) {this.rolename = rolename;}
public String getNote() {return note;}
public void setNote(String note) {this.note = note;}
}
5 MyBatis配置文件mybatis-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="role" type="com.hinner.test.po.Role" />
</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://192.168.8.214:3306/test" />
<property name="username" value="*****" />
<property name="password" value="*****" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/hinner/test/mapper/roleMapper.xml" />
</mappers>
</configuration>
6 创建Mapper类及配置
类RoleMapper
public interface RoleMapper {
public Role getRole(int id);
public int insertRole(Role role);
public int deleteRole(int id);
}
配置roleMapper.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.hinner.test.mapper.RoleMapper">
<select id="getRole" parameterType="int" resultType="role">
select
id,rolename,note from t_role where id=#{id}
</select>
<insert id="insertRole" parameterType="role">
insert into t_role
(id,rolename,note)values(#{id},#{rolename},#{note})
</insert>
<delete id="deleteRole" parameterType="int">
delete from t_role where
id=#{id}
</delete>
</mapper>
7 创建SqlSessionFactoryUtil工具类
public class SqlSessionFactoryUtil {
public static Logger logger = Logger.getLogger(SqlSessionFactoryUtil.class);
private static SqlSessionFactory factory = null;
public static final String PATH_MYBATIS = "mybatis-config.xml";
private final static Class CLASS_LOCK = SqlSessionFactoryUtil.class;
public static void init() {
getSqlSessionFactory();
}
public static SqlSessionFactory getSqlSessionFactory() {
if (factory != null)
return factory;
// then create a Singleton
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(PATH_MYBATIS);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
synchronized (CLASS_LOCK) {
if (factory == null)
factory = new SqlSessionFactoryBuilder().build(inputStream);
}
return factory;
}
public static SqlSession getSession() {
return getSqlSessionFactory().openSession();
}
}
8 TestMain
public class MainTest {
public static void main(String[] args) {
try {
SqlSessionFactoryUtil.init();
} catch (Exception ex) {
ex.printStackTrace();
System.exit(0);
}
SqlSession sqlSession = null;
try {
sqlSession = SqlSessionFactoryUtil.getSession();
RoleMapper mapper = sqlSession.getMapper(RoleMapper.class);
// Role role = mapper.getRole(1);
// System.out.println(role.getRolename());
// int d = mapper.deleteRole(1);
// System.out.println(d);
Role role = new Role();
role.setId(4);
role.setRolename("wangbo");
role.setNote(null);
int i = mapper.insertRole(role);
System.out.println(i);
sqlSession.commit();
} catch (Exception ex) {
ex.printStackTrace();
sqlSession.rollback();
} finally {
if (sqlSession != null)
sqlSession.close();
}
}
}