mybatis快速使用
来源:互联网 发布:电力猫网络连不上网 编辑:程序博客网 时间:2024/06/06 09:01
1.项目结构:
2.代码:
1.User.java,Article.java:两个用到的javabean
package com.mybatis.bean;public class User {private int id;private String userName;private String userAge;private String userAddress;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserAge() {return userAge;}public void setUserAge(String userAge) {this.userAge = userAge;}public String getUserAddress() {return userAddress;}public void setUserAddress(String userAddress) {this.userAddress = userAddress;}}
package com.mybatis.bean;public class Article {private int id;private User user;private String title;private String content;public int getId() {return id;}public void setId(int id) {this.id = id;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
2.mybatis通过接口去执行CRUD,没有实现类,对应XML配置文件,实现接口方法:IUserOperation.java
package com.mybatis.service;import java.util.List;import com.mybatis.bean.Article;import com.mybatis.bean.User;public interface IUserOperation {public User selectUserById(int id);public List selectUsers(String userName);public void addUser(User user);public void updateUser(User user);public void deleteUser(int id);public List<Article> getUserArticles(int userid);}
3.对应配置文件User.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="com.mybatis.bean.UserMapper com.mybatis.service.IUserOperation" --><!-- mapepr参数,namespace 对应接口 以下用到的 User 在Configuration.xml配置文件进行了匹配处理类--><mapper namespace="com.mybatis.service.IUserOperation" > <!-- id 对应接口 方法名 parameterType传入参数类型 resultType返回值类型--><select id="selectUserById" parameterType="int" resultType="User">select * from user where id = #{id}</select><!-- 定义返回值集合对象 通过id引用 --><resultMap type="User" id="resultListUser"><id column="id" property="id"/><result column="userName" property="userName"/><result column="userAge" property="userAge"/><result column="userAddress" property=""/></resultMap><!--查询集合 传入string 返回map,上面声明的map--><select id="selectUsers" parameterType="string" resultMap="resultListUser">select * from user where userName like #{userName}</select><!-- useGeneratedKeys="true" keyProperty="id"绑定key列,自动创建 --><insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">insert into user(userName,userAge,userAddress)values(#{userName},#{userAge},#{userAddress})</insert><update id="updateUser" parameterType="User">update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}</update><delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete><!-- 多对一查询 注意 id和aid --><resultMap type="Article" id="resultUserArticleList"><id property="id" column="aid"/><result property="title" column="title"/><result property="content" column="content"/><!-- association处理多对一的关系 多本书 一个作者 --><association property="user" javaType="User"><id property="id" column="id"/><result column="userName" property="userName"/><result column="userAge" property="userAge"/><result column="userAddress" property="userAddress"/></association></resultMap> <select id="getUserArticles" parameterType="int" resultMap="resultUserArticleList">select user.id,user.userAge,user.userName,user.userAddress,article.id aid,article.title,article.content from user,article where user.id=article.userid and user.id=#{id}</select></mapper>
4.Mybatis配置文件:Configuration.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="com.mybatis.bean.UserMapper com.mybatis.service.IUserOperation" --><!-- mapepr参数,namespace 对应接口 以下用到的 User 在Configuration.xml配置文件进行了匹配处理类--><mapper namespace="com.mybatis.service.IUserOperation" > <!-- id 对应接口 方法名 parameterType传入参数类型 resultType返回值类型--><select id="selectUserById" parameterType="int" resultType="User">select * from user where id = #{id}</select><!-- 定义返回值集合对象 通过id引用 --><resultMap type="User" id="resultListUser"><id column="id" property="id"/><result column="userName" property="userName"/><result column="userAge" property="userAge"/><result column="userAddress" property=""/></resultMap><!--查询集合 传入string 返回map,上面声明的map--><select id="selectUsers" parameterType="string" resultMap="resultListUser">select * from user where userName like #{userName}</select><!-- useGeneratedKeys="true" keyProperty="id"绑定key列,自动创建 --><insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">insert into user(userName,userAge,userAddress)values(#{userName},#{userAge},#{userAddress})</insert><update id="updateUser" parameterType="User">update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}</update><delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete><!-- 多对一查询 注意 id和aid --><resultMap type="Article" id="resultUserArticleList"><id property="id" column="aid"/><result property="title" column="title"/><result property="content" column="content"/><!-- association处理多对一的关系 多本书 一个作者 --><association property="user" javaType="User"><id property="id" column="id"/><result column="userName" property="userName"/><result column="userAge" property="userAge"/><result column="userAddress" property="userAddress"/></association></resultMap> <select id="getUserArticles" parameterType="int" resultMap="resultUserArticleList">select user.id,user.userAge,user.userName,user.userAddress,article.id aid,article.title,article.content from user,article where user.id=article.userid and user.id=#{id}</select></mapper>
4.Mybatis配置文件:Configuration.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><!--alias可选,默认为类名,type必须 --><typeAlias alias="User" type="com.mybatis.bean.User"/><typeAlias type="com.mybatis.bean.Article"/></typeAliases><!-- 配置数据库连接 --><environments default="development"><environment id="development"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!--导入mapper User.xml --><mappers><mapper resource="com/mybatis/bean/User.xml"/></mappers></configuration>
5.测试:UserTest.java:
package com.junit.test;import static org.junit.Assert.*;import java.io.IOException;import java.io.Reader;import java.util.List;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 org.apache.naming.resources.Resource;import org.junit.Before;import org.junit.Test;import com.mybatis.bean.Article;import com.mybatis.bean.User;import com.mybatis.service.IUserOperation;public class UserTest {private static SqlSessionFactory sqlSessionFactory ;private static Reader reader;static{try {reader = Resources.getResourceAsReader("Configuration.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static SqlSessionFactory getSession(){return sqlSessionFactory;}。。。。。。。。。。}加载配置文件,获取sqlsessionfactory对象
@Testpublic void test() {SqlSession session = sqlSessionFactory.openSession();/*User user = session.selectOne("com.mybatis.bean.UserMapper.selectUserById", 1);*/IUserOperation userOperation=session.getMapper(IUserOperation.class);User user = userOperation.selectUserById(1);System.out.println(user.getUserAddress());System.out.println(user.getUserName());session.close();}通过session的getMapper(xxx.class)获取接口对象xxx,通过接口方法直接操作。
还有一种方式改User.xml的
namespace="com.mybatis.bean.UserMapper再在test()中:直接获取 传入 包名.namespace.id + id
User user = session.selectOne("com.mybatis.bean.UserMapper.selectUserById", 1);获取集合:
@Testpublic void getUserList(){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class); List<User> users = userOperation.selectUsers("%"); for(User user:users){ System.out.println(user.getId()+":"+user.getUserName()+":"+user.getUserAddress()); } } finally { session.close(); } }添加:要commit
@Testpublic void addUser(){User user = new User();user.setUserAddress("东京不热");user.setUserName("藏进一空");user.setUserAge("18");SqlSession session= sqlSessionFactory.openSession();IUserOperation userOperation = session.getMapper(IUserOperation.class);userOperation.addUser(user);session.commit();System.out.println("当前增加的用户为:"+user.getId()+" "+user.getUserAddress());session.close();}
更新:先获取对象再修改保存,commit@Testpublic void update(){SqlSession session = sqlSessionFactory.openSession();IUserOperation userOperation = session.getMapper(IUserOperation.class);User user = userOperation.selectUserById(2);user.setUserName("巨像");user.setUserAge("19");user.setUserAddress("aaaaa");userOperation.updateUser(user);session.commit();session.close();}删除:传id:
@Testpublic void deleteUser(){SqlSession session = sqlSessionFactory.openSession();IUserOperation userOperation = session.getMapper(IUserOperation.class);userOperation.deleteUser(12);session.commit();session.close();}
获取多对一集合:传入user.id
@Testpublic void getUserArticles(){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class); List<Article> articles = userOperation.getUserArticles(1); for(Article article:articles){ System.out.println(article.getTitle()+":"+article.getContent()+ ":作者是:"+article.getUser().getUserName()+":地址:"+ article.getUser().getUserAddress()); } } finally { session.close(); } }}
3.总结:
1.创建mybatis配置文件:数据库连接、别名类匹配、以及导入之后创建的mapper XML
2.创建对象javabean,并根据需求配置javabean的mapper操作XML文件
3.创建操作接口,对应mapper内的 id、传入值名称和类型
4.通过加载配置文件获取sqlsessionfactory对象,在获取session,通过session.getMapper(xxx.class) 获取操作接口类对象xxx,通过接口方法直接执行CRUD. 0 0
- mybatis快速使用
- mybatis+spring快速使用
- Spring3MVC+Mybatis快速使用
- 快速学会使用MyBatis
- 如何快速学习使用mybatis以及总结
- 使用mybatis-generator-core快速生成代码
- 使用mybatis-generator来快速生成代码
- IDEA中使用MyBatis Generator快速开发
- 转:优雅高效的MyBatis-Plus工具快速入门使用
- 在idea中使用Mybatis-generator插件快速生成代码
- 使用Spring Boot +JPA+mybatis快速启动一个web项目
- 优雅高效的MyBatis-Plus工具快速入门使用
- 优雅高效的MyBatis-Plus工具快速入门使用
- 优雅高效的MyBatis-Plus工具快速入门使用
- MyBatis-----1、MyBatis快速入门
- Mybatis中使用mybatis-generator结合Ant脚本快速自动生成Model、Mapper等文件
- spring上使用mybatis快速生成插件快速生成xml、model、mapper
- Mybatis 快速入手教程
- 欢迎使用CSDN-markdown编辑器
- Linux_Shell_ Map 的使用和遍历
- 银行卡四元素校验API 验证姓名手机号码身份证号码银行卡号是否一致
- cubemx_usart源码分析
- 理解Node.js事件驱动编程
- mybatis快速使用
- 酒干倘卖无
- Task详解
- 应用netcat实现端口转发
- toolbar3
- python 5-1 如何读写文本文件str1.encode('utf8')/decode('utf8')/open("text2.txt","wt",encoding="utf8")
- 【剑指offer】面试题38-数字在排序数组中出现的次数
- MySQL绿色版的安装(mysql-5.6.22-win32.zip)
- js实现图片预加载