Spring笔记(spring笔记下载)

  本篇文章为你整理了Spring笔记(spring笔记下载)的详细内容,包含有spring笔记github spring笔记下载 spring笔记狂神 spring笔记 百度网盘 Spring笔记,希望能帮助你了解 Spring笔记。

  将sql语句抽取到xml配置文件中

  使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

  mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。

  
CREATE TABLE USER( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(32) not null, passWord VARCHAR(32) not null )

  编写user实体类

  

package com.spring.demo;

 

   * @author Enki

   * @Version 1.0

  public class User {

   private int id ;

   private String userName;

   private String passWord;

   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 getPassWord() {

   return passWord;

   public void setPassWord(String passWord) {

   this.passWord = passWord;

   @Override

   public String toString() {

   return "User{" +

   "id=" + id +

   ", userName=" + userName + \ +

   ", passWord=" + passWord + \ +

   };

  

 

  
 

  

 ?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="userMapper"

   !-- 结果集封装的对象时resultType--

   select id="findAll" resultType="com.spring.demo.User"

   select * from user

   /select

   /mapper

  

 

  找到userMapper文件下的findAll方法并执行结果封住为User类型

  


 ?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" /transactionManager

   dataSource type="POOLED"

   property name="driver" value="com.mysql.jdbc.Driver"/

   property name="url" value="jdbc:mysql://localhost:3306/test"/

   property name="username" value="root"/

   property name="password" value="enki"/

   /dataSource

   /environment

   /environments

   !-- 加载映射文件--

   mappers

   mapper resource="com\spring\mybatis\demo\mapper\UserMapper.xml"/

   /mappers

   /configuration

  

 

  
//获得核心配置文件

   InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");

   //获得sqlSession工厂对象

   SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

   //获得sqlSession对象

   SqlSession sqlSession = build.openSession();

   //执行操作 参数

   List User objects = sqlSession.selectList("userMapper.findAll");

   //测试

   System.out.println(objects);

   sqlSession.close();

  

 

 

  


 !-- 添加 values值对应于User的属性-- 

 

   insert id="insertUser" parameterType="com.spring.demo.User"

   insert into user values(#{id},#{userName},#{passWord})

   /insert

  

 

  

 @Test

 

   public void test02() throws IOException ?。

   //获得核心配置文件

   InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");

   //获得sqlSession工厂对象

   SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

   //获得sqlSession对象

   SqlSession sqlSession = build.openSession();

   //执行操作 参数

   int insert = sqlSession.insert("userMapper.insertUser",new User("zhangsan","2121"));

  //mybatis 默认不提交事务 主动提交

   sqlSession.commit();

   //测试

   System.out.println(insert);

   sqlSession.close();

  

 

  修改

  

 !-- 修改-- 

 

   update id="updateUser" parameterType="com.spring.demo.User"

   update user set passWord=#{passWord} where userName=#{userName}

   /update

  

 

  

 @Test

 

   public void test03() throws IOException {

   //获得核心配置文件

   InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");

   //获得sqlSession工厂对象

   SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

   //获得sqlSession对象

   SqlSession sqlSession = build.openSession();

   //执行操作 参数

   int update = sqlSession.update("userMapper.updateUser", new User("zhangsan", "1111"));

  //mybatis 默认不提交事务

   sqlSession.commit();

   //测试

   System.out.println(update);

   sqlSession.close();

  

 

  删除

  

 !-- 删除-- 

 

   delete id="deleteUser" parameterType="com.spring.demo.User"

   delete from user where userName=#{userName}

   /delete

  

 

  

 @Test

 

   public void test04() throws IOException {

   //获得核心配置文件+

   InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");

   //获得sqlSession工厂对象

   SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

   //获得sqlSession对象

   SqlSession sqlSession = build.openSession();

   //执行操作 参数

   int delete = sqlSession.delete("userMapper.deleteUser", new User("zhangsan", "1111"));

  //mybatis 默认不提交事务

   sqlSession.commit();

   //测试

   System.out.println(delete);

   sqlSession.close();

  

 

  或者直接用id删除

  

 !-- 删除-- 

 

   delete id="deleteUser" parameterType="java.lang.Integer"

   delete from user where userName=#{id}

   /delete

  

 

  所以可以根据sql语句的所需要的参数类型进行对paramterType的类型进行对应,不一定必须写数据库的封装类型

  映射部分属性
 

  常用配置解析

  数据库环境的配置 支持多环境配置
 

  其中,事务管理器(transactionManager)类型有两种:

  • JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。

  • MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如JEE

  应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置

  为 false 来阻止它默认的关闭行为。

  其中,数据源(dataSource)类型有三种:

  • UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。

  • POOLED:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来。(JDBC使用POOLED)

  • JNDI:这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置

  一个 JNDI 上下文的引用

  mapper标签

  用于加载映射,加载方式如下:

  
单独抽取出来,明确分工

  typeAliases标签

  用于设置别名

  

 typeAliases 

 

   typeAlias type="com.spring.demo.User" alias="user"/

   /typeAliases

  

 

  常用apl SqlSessionFactory build(InputStream inputStream)

  

//获得核心配置文件

 

  InputStream resourceAsStream = Resources.getResourceAsStream("sqMapperConfig.xml");

  //获得sqlSession工厂对象

  SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

  //获得sqlSession对象

  SqlSession sqlSession = build.openSession();

  

 

  
openSession(boolean autoCommit)

  参数为是否自动提交,如果设置为true,那么不需要手动提交事务

  
SqlSession实例对象

  可以查询单个对象

  mybatis的代理开发

  mapper接口开发方法需要编写Mapper接口由mybatis框架根据接口定义创建接口的动态代理对象;

  需要遵循以下规范:

  Mapper.xml文件中的namespace与mapper接口的全限定名相同

  Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

  
Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
 

  
Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
 

  
 

  测试

  

public static void main(String[] args) throws IOException {

 

   InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapperConfig.xml");

   SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

   SqlSession session = build.openSession();

   UserMapper mapper = session.getMapper(UserMapper.class);

   List User users = mapper.findAll();

   System.out.println(users);

  

 

  以上就是Spring笔记(spring笔记下载)的详细内容,想要了解更多 Spring笔记的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: