MyBatis学习笔记(一)
2017-10-08 22:24
274 查看
一、MyBatis介绍
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、MyBatis快速入门
1)创建Java Project或者Java Web Project
2)导入相应的jar包
3)创建数据库和表(mysql)
4)添加mysql驱动配置文件datasource.properties
5)添加mybatis配置文件mybatis-config.xml
6)创建表所对应的实体对象User
7)创建dao接口UserMapper.java和操作表的sql映射文件UserMapper.xml
UserMapper.java
UserMapper.xml
8)创建获取SqlSessionFactory的工具类MyBatisUtil.java
9)测试文件Main.java
三、完整的文件目录
四、运行结果
新增用户:{id: 7, userId: user1, userName: demo_test, nickname: 测试帐号, password: **, actStatus: N}
更新用户:{id: 7, userId: user1, userName: demo_update, nickname: 测试更新, password: **, actStatus: N}
五、源码下载
http://download.csdn.net/download/zavierliu/10012835
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二、MyBatis快速入门
1)创建Java Project或者Java Web Project
2)导入相应的jar包
3)创建数据库和表(mysql)
CREATE DATABASE mybatis; USE mybatis; CREATE TABLE `users` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `USER_ID` varchar(32) DEFAULT NULL, `USER_NAME` varchar(32) DEFAULT NULL, `NICKNAME` varchar(32) DEFAULT NULL, `PASSWORD` varchar(20) DEFAULT NULL, `IS_ADMIN` varchar(2) DEFAULT NULL, PRIMARY KEY (`ID`) );
4)添加mysql驱动配置文件datasource.properties
dataSource.driverClassName=com.mysql.jdbc.Driver dataSource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true dataSource.username=root dataSource.password=root
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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="${dataSource.driverClassName}" /> <property name="url" value="${dataSource.url}" /> <property name="username" value="${dataSource.username}" /> <property name="password" value="${dataSource.password}" /> </dataSource> </environment> </environments> <mappers> <package name="com.zavierliu.mybatis.demo.dao" /> </mappers> </configuration>
6)创建表所对应的实体对象User
package com.zavierliu.mybatis.demo.data; public class User { private Integer id; private String userId; private String userName; private String nickname; private String password; private String isAdmin; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getIsAdmin() { return isAdmin; } public void setIsAdmin(String isAdmin) { this.isAdmin = isAdmin; } @Override public String toString() { return "{" + "id: " + id + ", userId: " + userId + ", userName: " + userName + ", nickname: " + nickname + ", password: " + password + ", actStatus: " + isAdmin + "}"; } }
7)创建dao接口UserMapper.java和操作表的sql映射文件UserMapper.xml
UserMapper.java
package com.zavierliu.mybatis.demo.dao; import java.util.List; import java.util.Map; import com.zavierliu.mybatis.demo.data.User; public interface UserMapper { public Map<String, Object> getUserById(int id); public int addUser(User user); public void updateUser(User user); public void deleteUser(int id); public List<User> getUserByParam(Map<String, Object> param); }
UserMapper.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.zavierliu.mybatis.demo.dao.UserMapper"> <resultMap type="com.zavierliu.mybatis.demo.data.User" id="usermap"> <id column="id" property="id" /> <result column="user_id" property="userId" /> <result column="user_name" property="userName" /> <result column="nickname" property="nickname" /> <result column="password" property="password" /> <result column="is_admin" property="isAdmin" /> </resultMap> <select id="getUserById" parameterType="int" resultType="map"> SELECT id, user_id, user_name, nickname, password, is_admin FROM users WHERE user_id = #{_parameter } </select> <insert id="addUser" parameterType="com.zavierliu.mybatis.demo.data.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users ( user_id, user_name, nickname, password, is_admin ) VALUES ( #{userId}, #{userName}, #{nickname}, #{password}, #{isAdmin} ) </insert> <update id="updateUser" parameterType="com.zavierliu.mybatis.demo.data.User"> UPDATE users <set> <if test="userId != null and userId != ''"> user_id = #{userId }, </if> <if test="userName != null and userName != ''"> user_name = #{userName }, </if> <if test="nickname != null and nickname != ''"> nickname = #{nickname }, </if> <if test="password != null and password != ''"> password = #{password }, </if> <if test="isAdmin != null and isAdmin != ''"> is_admin = #{isAdmin } </if> </set> WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id = #{_parameter } </delete> <select id="getUserByParam" parameterType="map" resultMap="usermap"> SELECT id, user_id, user_name, nickname, password, is_admin FROM users <where> <if test="userName != null and userName != ''"> AND user_name LIKE '%${userName}%' </if> <if test="nickname != null and nickname != ''"> AND nickname LIKE '%${nickname}%' </if> <if test="isAdmin != null and isAdmin != ''"> AND is_admin = #{isAdmin } </if> </where> </select> </mapper>
8)创建获取SqlSessionFactory的工具类MyBatisUtil.java
package com.zavierliu.mybatis.utils; import java.io.IOException; import java.io.Reader; import java.util.Properties; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtil { private static SqlSessionFactory factory = null; private MyBatisUtil() { } static { Reader reader = null; Properties properties = PropertiesUtil.loadProperties( MyBatisUtil.class, "datasource.properties"); try { reader = Resources.getResourceAsReader("mybatis-config.xml"); } catch (IOException e) { throw new RuntimeException(e.getMessage()); } factory = new SqlSessionFactoryBuilder().build(reader, properties); } public static SqlSessionFactory getSqlSessionFactory() { return factory; } }
9)测试文件Main.java
package test; import com.zavierliu.mybatis.demo.data.User; import com.zavierliu.mybatis.demo.service.IUserService; import com.zavierliu.mybatis.demo.service.impl.UserServiceImpl; public class Main { public static void main(String[] args) { User user = new User(); user.setUserId("user1"); user.setUserName("demo_test"); user.setNickname("测试帐号"); user.setIsAdmin("N"); user.setPassword("****"); IUserService userService = new UserServiceImpl(); userService.addUser(user); System.out.println("新增用户:" + user); user.setUserName("demo_update"); user.setNickname("测试更新"); userService.updateUser(user); System.out.println("更新用户:" + user); } }
三、完整的文件目录
四、运行结果
新增用户:{id: 7, userId: user1, userName: demo_test, nickname: 测试帐号, password: **, actStatus: N}
更新用户:{id: 7, userId: user1, userName: demo_update, nickname: 测试更新, password: **, actStatus: N}
五、源码下载
http://download.csdn.net/download/zavierliu/10012835
相关文章推荐
- Mybatis学习笔记二(Mybatis 配置文件)
- Mybatis学习笔记(二)
- MyBatis学习笔记(十)注解映射
- mybatis学习笔记(3)-入门程序一
- mybatis学习笔记(七)增删改查
- Mybatis学习笔记(1)
- MyBatis学习笔记(一)---一个简单MyBatis示例
- mybatis学习笔记(三)-- 优化数据库连接配置
- Mybatis学习笔记(三)-----删除记录
- Mybatis学习笔记(十八)【spring和mybatis整合】
- mybatis学习笔记(13)-延迟加载
- mybatis学习笔记(一)
- Mybatis学习笔记(四)
- mybatis学习笔记(十一)spring与mybatis整合
- mybatis学习笔记(3)-入门程序二
- MyBatis学习笔记(一)——配置文件中的别名以及mapper中的namespace
- MyBatis学习笔记
- MyBatis学习笔记(二)---MyBatis架构概述
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
- Mybatis学习笔记(五)-----配置文件中常用标签