mybatis基础学习二

操作users表的CRUD

XML实现方式

  • 定义sql映射xml文件 userMapper.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="mybatis.userMapper">
  4. <!-- <select id="getid" parameterType="int"
  5. resultType="mybatis.User">
  6. select * from users where id=#{id}
  7. </select> -->
  8. <insert id="insertUser" parameterType="mybatis.User">
  9. insert into users(name, age) values(#{name}, #{age});
  10. </insert>
  11. <delete id="deleteUser" parameterType="int">
  12. delete from users where id=#{id}
  13. </delete>
  14. <update id="updateUser" parameterType="mybatis.User">
  15. update users set name=#{name},age=#{age} where id=#{id}
  16. </update>
  17. <select id="selectUser" parameterType="int" resultType="mybatis.User">
  18. select * from users where id=#{id}
  19. </select>
  20. <select id="selectAllUsers" resultType="mybatis.User">
  21. select * from users
  22. </select>
  23. </mapper>
  • 在conf.xml中注册该映射文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <environments default="development">
  5. <environment id="development">
  6. <transactionManager type="JDBC" />
  7. <dataSource type="POOLED">
  8. <property name="driver" value="com.mysql.jdbc.Driver" />
  9. <property name="url" value="jdbc:mysql://172.171.2.161:3306/mybatis" />
  10. <property name="username" value="root" />
  11. <property name="password" value="root123" />
  12. </dataSource>
  13. </environment>
  14. </environments>
  15. <mappers>
  16. <!--xml方式 -->
  17. <mapper resource="mybatis/userMapper.xml"/>
  18. </mappers>
  19. </configuration>
  • 封装得到session的方法MybatisUtil.java
  1. package mybatis;
  2. import java.io.InputStream;
  3. import org.apache.ibatis.session.SqlSession;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  6. public class MybatisUtil
  7. {
  8. //返回session
  9. public static SqlSession openSqlSession()
  10. {
  11. String resource = "conf.xml";
  12. InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
  13. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
  14. SqlSession session = factory.openSession();
  15. //貌似可有可无
  16. session.commit();
  17. return session;
  18. }
  19. }
  • 编写测试类 Test.java

插入用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * xml方式测试
  9. */
  10. String statement = "mybatis.userMapper.insertUser";
  11. int tuser = MybatisUtil.openSqlSession().insert(statement, new User(3, "rose", 3));
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(tuser);
  14. }
  15. }

更新用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * xml方式测试
  9. */
  10. String statement = "mybatis.userMapper.updateUser";
  11. int tuser = MybatisUtil.openSqlSession().update(statement, new User(3, "rose", 3));
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(tuser);
  14. }
  15. }

删除用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * xml方式测试
  9. */
  10. String statement = "mybatis.userMapper.deleteUser";
  11. int tuser = MybatisUtil.openSqlSession().delete(statement,2));
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(tuser);
  14. }
  15. }

查询全部用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * xml方式测试
  9. */
  10. String statement = "mybatis.userMapper.selectAllUsers";
  11. List<User> tuser = MybatisUtil.openSqlSession().selectList(statement);
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(tuser);
  14. }
  15. }

注解实现方式

  • 定义sql接口文件 UserMapperDe.java
  1. package mybatis;
  2. import java.util.List;
  3. import org.apache.ibatis.annotations.Delete;
  4. import org.apache.ibatis.annotations.Insert;
  5. import org.apache.ibatis.annotations.Select;
  6. import org.apache.ibatis.annotations.Update;
  7. public interface UserMapperDe
  8. {
  9. @Insert("insert into users(name, age) values(#{name}, #{age})")
  10. public int insertUser(User user);
  11. @Delete("delete from users where id=#{id}")
  12. public int deleteUserById(int id);
  13. @Update("update users set name=#{name},age=#{age} where id=#{id}")
  14. public int updateUser(User user);
  15. @Select("select * from users where id=#{id}")
  16. public User getUserById(int id);
  17. @Select("select * from users")
  18. public List<User> getAllUser();
  19. }
  • 在conf.xml中注册该接口文件
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <environments default="development">
  5. <environment id="development">
  6. <transactionManager type="JDBC" />
  7. <dataSource type="POOLED">
  8. <property name="driver" value="com.mysql.jdbc.Driver" />
  9. <property name="url" value="jdbc:mysql://172.171.2.161:3306/mybatis" />
  10. <property name="username" value="root" />
  11. <property name="password" value="root123" />
  12. </dataSource>
  13. </environment>
  14. </environments>
  15. <mappers>
  16. <!--xml方式 -->
  17. <mapper resource="mybatis/userMapper.xml"/>
  18. <!--注解方式 -->
  19. <mapper class="mybatis.UserMapperDe"/>
  20. </mappers>
  21. </configuration>
  • 编写测试类 TestClass.java

插入用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * 注解方式测试
  9. */
  10. UserMapperDe mapper = MybatisUtil.openSqlSession().getMapper(UserMapperDe.class);
  11. int inuser = mapper.insertUser(new User(-1, "clock", 1));
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(inuser);
  14. }
  15. }

更新用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * 注解方式测试
  9. */
  10. UserMapperDe mapper = MybatisUtil.openSqlSession().getMapper(UserMapperDe.class);
  11. int inuser = mapper.updateUser(new User(2, "efpd", 2));
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(inuser);
  14. }
  15. }

删除用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * 注解方式测试
  9. */
  10. UserMapperDe mapper = MybatisUtil.openSqlSession().getMapper(UserMapperDe.class);
  11. int inuser = mapper.deleteUserById(2);
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(inuser);
  14. }
  15. }

查询全部用户

  1. package mybatis;
  2. import java.io.IOException;
  3. public class Test
  4. {
  5. public static void main(final String[] args) throws IOException
  6. {
  7. /**
  8. * 注解方式测试
  9. */
  10. UserMapperDe mapper = MybatisUtil.openSqlSession().getMapper(UserMapperDe.class);
  11. List<User> inuser = mapper.getAllUser();
  12. MybatisUtil.openSqlSession().close();
  13. System.out.println(inuser);
  14. }
  15. }

来自为知笔记(Wiz)

时间: 2024-08-11 07:43:25

mybatis基础学习二的相关文章

Mybatis基础学习(二)&mdash;开发Dao方式

一.原始Dao开发方式 UserDao.java public interface UserDao{ public User findUserByID(Serializable id); public List<User> findUsersByName(String name); } UserDaoImpl.java public class UserDaoImpl implements UserDao{ //SqlSessionFactory是单例存在,不应该在具体实例中创建,需要外部依赖

mybatis基础(二)

上接mybatis基础(二) 开发规范: 1.在mapper.xml中namespace等于mapper接口地址 2.mapper.java接口中的方法名和mapper.xml中statement的id一致 3.mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致. 4.mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致. 9.properties

puppet基础学习(二)

puppet基础学习(二) 六.ResourceOrdering(资源定序) 使用变化参数before , require , notify , subscribe catalog是对一个给定的系统的所有资源及关系的编译,在编译catalog时,除非我们指定资源的执行顺序,不然puppet是以其自己的顺序管理,大多数时候puppet指定适当的方式,例如puppet管理用户gigabyte应该存在和文件夹/home/gigabyte/bin应该存在并属于用户gigabyte时,puppet会自动指

Mybatis基础学习(一)&mdash;初识MyBatis

一.MyBatis是什么?      MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进.      MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设置参

CSS入门基础学习二

我们下午继续学习CSS的入门基础,搬上你的小板凳赶快进入吧! 一.背景(background) Background-color:背景颜色 background-image (背景图片) background-repeat(设置背景平铺)  repeat (默认值) no-repeat (不平铺) repeat-x  (横向平铺) repeat-y (纵向平铺) background-position (设置背景位置) 设置具体值: left| right| top| bottom| cnete

Mybatis基础学习(四)&mdash;关系映射

一.模型分析 user和orders user---->orders 一个用户可以创建多个订单,一对多. orders--->user 一个订单只由一个用户创建,一对一.   orders和orderdetail orders--->orderdetail 一个订单可以包括多个订单明细,因为一个订单可以购买多个商品,每个商品的购买信息在orderdetail记录,一对多关系. orderdetail---> orders 一个订单明细只能包括在一个订单中,一对一.   orderd

HTML基础学习(二)&mdash;CSS

一.CSS概述     CSS(Cascading Stytle Sheets)层叠样式表,用来定义网页的显示效果.可以解决HTNL代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显示效果.即CSS将网页内容和显示样式分离,提高了显示功能.   二.CSS与HTML结合方式 1.style属性方式      利用标签中style属性来改变每个标签的显示样式. <body> <div style="background-color: #76EE00;"

Mybatis基础学习(五)&mdash;缓存

一.概述      mybatis提供查询缓存,如果缓存中有数据就不用从数据库中获取,用于减轻数据压力,提高系统性能.           一级缓存是SqlSession级别的缓存.在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据.不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的.      二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可

jQuery基础学习(二)&mdash;jQuery选择器

一.jQuery基本选择器 1.CSS选择器     在学习jQuery选择器之前,先介绍一下之前学过的CSS选择器. 选择器 语法 描述 示例   标签选择器 E {                 CSS规则   }   以文档元素为选择符   ID选择器 #ID{                  CSS规则 }   以ID为选择符   类选择器 E.className{                 CSS规则 }   以文档元素的Class为选择符   群组选择器 E1,E2{