Mybatis学习第二天------2021-07-07

Mybatis学习第二天


一、Mybatis是什么?

	Mybatis:是持久层框架、支持自定义SQL、免除设置参数和获取结果集的操作

二、搭建第一个Mybatis工程

1.创建java Maven项目

2.导入pom.xml坐标

代码如下(示例):

				<dependencies>
				        <!--mybatis的依赖-->
				        <dependency>
				            <groupId>org.mybatis</groupId>
				            <artifactId>mybatis</artifactId>
				            <version>3.4.5</version>
				        </dependency>
				        <!--单元测试-->
				        <dependency>
				            <groupId>junit</groupId>
				            <artifactId>junit</artifactId>
				            <version>4.12</version>
				        </dependency>
				        <!--msyql的驱动-->
				        <dependency>
				            <groupId>mysql</groupId>
				            <artifactId>mysql-connector-java</artifactId>
				            <version>5.1.6</version>
				        </dependency>
				        <!--日志:记录应用程序所有的执行过程-->
				        <dependency>
				            <groupId>log4j</groupId>
				            <artifactId>log4j</artifactId>
				            <version>1.2.17</version>
				        </dependency>
				    </dependencies>

3.创建Mybatis核心配置文件(mybatis-config.xml)

在这里插入图片描述

代码如下(示例):

			<?xmlversion="1.0"encoding="UTF-8"?>
			<!DOCTYPEconfiguration
			PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
			"http://mybatis.org/dtd/mybatis-3-config.dtd">
			
			<environmentsdefault="development">
			<environmentid="development">
			<transactionManagertype="JDBC"></transactionManager><!--事务管理类型:JDBC、MANAGED-->
			<dataSourcetype="POOLED"><!--数据源类型:POOLED、UNPOOLED、JNDI-->
			<propertyname="driver"value="com.mysql.jdbc.Driver"/>
			<propertyname="url"value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"/>
			<propertyname="username"value="root"/>
			<propertyname="password"value="root"/>
			</dataSource>
			</environment>
			</environments>

4.创建实体类和数据表(尽可能保持一致)

5.创建实体类映射文件

  1. 在 UserMapper.xml中配置:(头部+对映的数据库映射文件)

```java
<?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.zx.dao.UserDao">
    <insert id="add" parameterType="com.zx.entity.User">
        insert into t_user values (null,#{username},#{password})
    </insert>

    <delete id="delete" parameterType="int">
        delete from t_user where id=#{id}
    </delete>

    <select id="findAll" resultType="com.zx.entity.User">
        select * from t_user
    </select>

    <update id="update" parameterType="com.zx.entity.User">
        update t_user set username=#{username},password=#{password} where id=#{id}
    </update>

    <select id="selectOne" parameterType="int" resultType="com.zx.entity.User">
        select * from t_user where id=#{id}
    </select>

    <select id="query" parameterType="java.lang.String" resultType="com.zx.entity.User">
        select * from t_user where username like "%"#{name}"%"
    </select>

    <select id="login" parameterType="com.zx.entity.User" resultType="com.zx.entity.User">
        select * from t_user where username=#{username} and password=#{password}
    </select>


</mapper>
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707215806876.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0Mjk4NzQx,size_16,color_FFFFFF,t_70)
在这里 mapper 有一个属性位namespace这个代表的就是你的dao层接口的全路径位置。
而下面的标签有一个id属性,这id属性对应的值则是你的接口所写的那个方法!一定要对应,这样才能通过这里找到你的dao层
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707220127647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0Mjk4NzQx,size_16,color_FFFFFF,t_70)

2. 在mybatis-config.xml中配置
``` **resoureces---->这个代表你的Resouces下Mapper所在的全路径,切记!是用 / ,而不是用 .**

这样就能在mybatis-config.xml中找到你的mapper.xml其中的sql语句啦。

				*a) Namespace:命名空间 必须XXXDao的全限定类名
				b) 标签中的增删改查的id必须是XXXDao中的方法名称
				c) parameterType表明方法中的参数类型
				d)书写sql语句过程中,需要用#{参数}替换*

6.测试

  1. 首先读取配置文件
  2. sqlSessionFactory
    在这里插入图片描述
    3.最后写个sqlSession.commit();否则执行成功不往数据库写,如果写了没有的话,再加sqlSession.close()

三、配置log4j:【一共需要修改三个地方】

1.作用:

打印执行相关信息。比如数据库执行语句什么的

2.需要配置如下内容:

  1. 在resources下创建一个文件,名为log4j.properties,内容如下:
				#SetrootcategoryprioritytoINFOanditsonlyappendertoCONSOLE.
				#log4j.rootCategory=INFO,CONSOLEdebuginfowarnerrorfatal
				log4j.rootCategory=debug,CONSOLE,LOGFILE
				
				#SettheenterpriseloggercategorytoFATALanditsonlyappendertoCONSOLE.
				log4j.logger.org.apache.axis.enterprise=FATAL,CONSOLE
				
				#CONSOLEissettobeaConsoleAppenderusingaPatternLayout.
				log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
				log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
				log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601}%-6r[%15.15t]%-5p%30.30c%x-%m\n
				
				#LOGFILEissettobeaFileappenderusingaPatternLayout.
				log4j.appender.LOGFILE=org.apache.log4j.FileAppender
				log4j.appender.LOGFILE.File=d:\axis.log
				log4j.appender.LOGFILE.Append=true
				log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
				log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601}%-6r[%15.15t]%-5p%30.30c%x-%m\n
  1. 在mybatis.xml中的configuration配置内容加上:
   			<settings>
   			<!--打印查询语句-->
   			<settingname="logImpl"value="STDOUT_LOGGING"/>
   			</settings>
  1. 在pom.xml中添加内容
				<!--日志:记录应用程序所有的执行过程-->
   			<dependency>
   			<groupId>log4j</groupId>
   			<artifactId>log4j</artifactId>
   			<version>1.2.17</version>
   			</dependency>

四、原理

在这里插入图片描述
在这里插入图片描述

五、采用注解的方式

1.直接在dao的接口中

在这里插入图片描述

2.在mybatis.xml中的mapper 写

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值