一、创建测试项目工程

二、导包(一个myBatis所需的包,以及一个数据库操作的包)

三、创建实体类

四、配置文件的建立(最佳命名为(SqlMapConfig.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>
<properties resource="datasource.properties"></properties>
<typeAliases>
<typeAlias type="com.lovo.pojo.User" alias="User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/lovo/mapper/UserMapper.xml"/>
</mappers> </configuration>

用以上方式配置需要先创立配置文件(datasource.properties)

配置文件代码如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/myBatis?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123

然后创建一个获得连接对象的类,我习惯命名为DbUtil放在util包中,代码如下:

public class DbUtil {
private static SqlSessionFactory sessionFactory = null; private DbUtil() {
InputStream in = null;
try {
in = Resources.getResourceAsStream("SqlMapConfig.xml");
sessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public static SqlSession getSession() {
if (sessionFactory == null) {
new DbUtil();
}
return sessionFactory.openSession(); }

然后再对实体pojo配置一个XML文件和一个接口:

XML最好与接口同名,以便自己好辨识

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" >
<!--namespace与mapper接口相对应 -->
<mapper namespace="com.lovo.mapper.UserMapper">
<resultMap type="User" id="UserMap">
<id property="id" column="id" javaType="int"/>
<result property="userName" column="username" javaType="java.lang.String"/>
<result property="userPwd" column="pwd" javaType="java.lang.String"/>
<result property="state" column="state" javaType="int"/>
</resultMap> <insert id="addUser" parameterType="User">
insert into user values(null,#{User.userName},#{User.userPwd},#{User.state}) </insert>
<delete id="delUserById" parameterType="int">
delete from user where id=#{id}
</delete>
<select id="findUserById" parameterType="int" resultMap="UserMap">
select * from user where id=#{id}
</select>
<update id="updateUser" parameterType="User">
update user set username=#{User.userName},pwd=#{User.userPwd},state=#{User.state} where id=#{User.id}
</update> <select id="FindAllUser" resultMap="UserMap">
select * from user
</select> <select id="findUserCount" resultType="int">
select count(*) from user </select>
<select id="FindUserByState" resultMap="UserMap">
select * from user where state=#{state} </select>
<select id="sumOfState" resultType="int">
select sum(state) from user
</select> </mapper>

接口如下:

public interface UserMapper {
public int addUser(@Param("User") User user);
public int delUserById(@Param("id") int id);
public int updateUser(@Param("User") User user);
public User findUserById(@Param("id") int id);
public List<User> FindAllUser();
public int findUserCount();
public List<User> FindUserByState(@Param("state") int state);
public int sumOfState();
}

这里的@param("User")为别名,除参数只有单个,且为基本数据类型外,都需要给于别名。

最后在建立service层

如:

public class UserServiceImpl implements UserService {
SqlSession sqlSession=DbUtil.getSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
@Override
public int addUser(User user) {
// TODO Auto-generated method stub
int num=0;
num=mapper.addUser(user);
sqlSession.commit();
return num;
}

最新文章

  1. Java正则速成秘籍(一)之招式篇
  2. jQuery 2.0.3 源码分析core - 选择器
  3. javascript原始数据类型compareto引用数据类型--近3天不太会的地方
  4. 【入门必备】最佳的 Node.js 学习教程和资料书籍
  5. 通过OpenSSL来生成二进制格式证书文件(pfx和cer)
  6. ThinkPHP之数据库操作
  7. jar的下载地址及其使用说明
  8. (easy)LeetCode 205.Reverse Linked List
  9. 《A Tour of PostgreSQL Internals》学习笔记——系统表和数据类型
  10. Java基础知识强化10:Java中的中间缓存变量机制
  11. 大数值基础、for与while循环的简单对比
  12. Maven之多模块打包成一个jar包及assembly
  13. 《Clean Code》 代码简洁之道
  14. 针对Student表的DAO设计实例
  15. java根据概率生成数字
  16. json-gson:.isJsonNull()问题-堆栈溢出
  17. angular5 组件通信(一)
  18. ubuntu里面搭建虚拟环境过程中遇到的问题以及解决方法。
  19. 14. js字符串截取substring用法
  20. JS生成指定范围内的随机数(支持随机小数)

热门文章

  1. linux系统一键安装phpstudy的lnmp环境
  2. iOS 消息转发机制
  3. 向苹果App Store提交新应用的图文教程(转)
  4. MFC编辑框字体大小调节(转)
  5. DP专题训练之HDU 1231 最大连续子序列
  6. File相关的读取和写入以及复制
  7. JAVA判断当前日期是节假日还是工作日
  8. Sqoop1.4.6配置和使用
  9. Android Listview
  10. sql存储过程比sql语句执行慢很多