使用Mybaties xml的增删改查
来源:互联网 发布:笑傲江湖ol捏脸数据 编辑:程序博客网 时间:2024/06/05 17:35
目录结构:
数据库:mysql
resource:jdbc.properties
##for Mysqldriver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/mybatisusername=rootpassword=123456
mybaties的配置:mybaties-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> <!-- 引入 jdbc.properties --> <properties resource="jdbc.properties" /> <!-- default属性表示采用哪种配置 --> <environments default="development"> <!-- 配置情况的一种,可以有多个,根据environments 的default来指定使用哪一种 --> <environment id="development"> <!-- 配置事务管理 采用JDBC --> <transactionManager type="JDBC"/> <!-- POOLED:mybatis的数据源,JNDI:基于tomcat的数据源 --> <dataSource type="POOLED"> <!-- 数据库连接信息 --> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <mappers> <!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/mapping/userMapper.xml--> <mapper resource="me/mapping/userMapper.xml"/> </mappers></configuration>
首先是domain的代码:
package me.domain;public class user { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + "]"; }}
userMapping.xml
主要是sql语句的映射 ….以这种形式在mybaties-cinfig.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀) --><mapper namespace="me.mapping.userMapper"> <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 --> <!-- 根据id查询得到一个user对象 --> <select id="getUser" parameterType="int" resultType="me.domain.user"> select * from users where id=#{id} </select> <insert id="addUser" parameterType="me.domain.user"> insert into users(name,age) values (#{name},#{age}); </insert> <update id="updateUser" parameterType="me.domain.user"> update users set name=#{name},age=#{age} where id=#{id}; </update> <delete id="deleteUser" parameterType="int"> delete from users where id=#{id}; </delete> <select id="getAllUser" resultType="me.domain.user"> select * from users; </select></mapper>
TestMappingXml:
package me.test;import java.util.List;import me.domain.user;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import util.MyBatisUtil;public class TestMappingXml { @Test public void testAdd(){ SqlSession sqlSession = MyBatisUtil.getSqlSession(); /** * 映射sql的标识字符串, * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, * addUser是insert标签的id属性值,通过insert标签的id属性值就可以找到要执行的SQL */ String statement = "me.mapping.userMapper.addUser";//映射sql的标识字符串 user user = new user(); user.setName("道剑剑非道"); user.setAge(400); //执行插入操作 sqlSession.insert(statement,user); sqlSession.commit(); sqlSession.close(); } @Test public void testUpdate(){ SqlSession sqlSession = MyBatisUtil.getSqlSession(true); String sql = "me.mapping.userMapper.updateUser"; user user = new user(); user.setName("天际神毓逍遥"); user.setAge(800); user.setId(1); sqlSession.update(sql, user); sqlSession.close(); } @Test public void testDelele(){ SqlSession sqlSession = MyBatisUtil.getSqlSession(true); String sql = "me.mapping.userMapper.deleteUser"; sqlSession.delete(sql, 2); sqlSession.close(); } @Test public void testGetAll(){ SqlSession sqlSession = MyBatisUtil.getSqlSession(); /** * 映射sql的标识字符串, * me.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, * getAllUsers是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL */ String statement = "me.mapping.userMapper.getAllUser";//映射sql的标识字符串 //执行查询操作,将查询结果自动封装成List<User>返回 List<user> lstUsers = sqlSession.selectList(statement); //使用SqlSession执行完SQL之后需要关闭SqlSession sqlSession.close(); System.out.println(lstUsers); }}
工具类:MyBatisUtil
package util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil { /** * 获取SqlSessionFactory * @return SqlSessionFactory */ public static SqlSessionFactory getSqlSessionFactory(){ String resource = "mybatis-config.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream input = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory fatory = new SqlSessionFactoryBuilder().build(input); return fatory; } /** * 获取SqlSession * @return SqlSession */ public static SqlSession getSqlSession(){ //创建能执行映射文件中sql的sqlSession return getSqlSessionFactory().openSession(); } /** * 获取SqlSession * @param isAutoCommit * true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务 * false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务 * @return SqlSession */ public static SqlSession getSqlSession(boolean isAutoCommit) { return getSqlSessionFactory().openSession(isAutoCommit); }}
注意点是:配置文件不要搞错了。
阅读全文
1 0
- 使用Mybaties xml的增删改查
- XML的增删改查
- xml的增删改查
- XML的增删改查
- XML的增删改查
- XML的增删改查
- Xml的增删改查
- 【XML】XML的基本使用(增删改查)
- XML的使用,增删改查(Unity中的)
- xml的增删改查,使用dom解析
- Mybatis--使用xml进行增删改查
- XML 增删查改
- XML 增删改查
- xml增删改查
- xml增删查改
- XML增删改查
- 一个有关xml的增删改查
- xml的增删改查之SAXBuilder
- 绘制Bezier三角面片
- mysql更改引擎(InnoDB,MyISAM)的方法
- Oracle高性能SQL语句
- COM初学(二) 编写和使用一个简单的COM
- springMVC 拦截器
- 使用Mybaties xml的增删改查
- memset对于int、long long、float、double 的极值怎么清
- 反思
- 【技术贴收集】微信开发 多图片上传接口异常日志
- Java 输入输出流
- COM初学 (一) 理论入门
- Oracle、SQL Server、MySQL、pointbase、DB2、MongoDB、Redis、memcached简介及端口
- 使用JSON的小bug
- https://wenku.baidu.com/view/f3854ed7b14e852458fb575f.html