当前位置: 首页 > wzjs >正文

做视频广告在哪个网站能够赚钱今日头条新闻最新消息

做视频广告在哪个网站能够赚钱,今日头条新闻最新消息,中国铁建统一企业门户网站,yy刷单做的那些网站文章目录 Mybatis是什么 1、Mybatis环境搭建 && 测试案例2、Mybatis核心配置3、resultMap字段映射4、获取主键值5、抽取公共字段6、参数处理面试知识点,#{}与${}的区别: 7、动态sql Mybatis是什么 Mybatis是一款优秀的持久层框架,用…

文章目录

    • Mybatis是什么
  • 1、Mybatis环境搭建 && 测试案例
  • 2、Mybatis核心配置
  • 3、resultMap字段映射
  • 4、获取主键值
  • 5、抽取公共字段
  • 6、参数处理
    • 面试知识点,#{}与${}的区别:
  • 7、动态sql

Mybatis是什么

Mybatis是一款优秀的持久层框架,用于简化JDBC开发。

Mybatis官方文档链接:
Mybatis官方文档

1、Mybatis环境搭建 && 测试案例

开发环境:jdk17 + idea2022 + maven 3.8.1

创建数据库:

create database mybatis;
use mybatis;drop table if exists tb_user;create table tb_user(id int primary key auto_increment,user_name varchar(20),password varchar(20),gender char(1),addr varchar(30)
);INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '重庆');

创建项目:
在这里插入图片描述
导入maven的 pom.xml 依赖:

	<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.10</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency><!-- junit单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- 添加slf4j日志api --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.20</version></dependency><!-- 添加logback-classic依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><!-- 添加logback-core依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency></dependencies>

resource目录下添加配置Mybatis的mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis?userSSL=false"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><!-- 加载sql映射文件 --><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

创建User实体类,映射数据库:

public class User {private Integer id;private String userName;private String password;private String gender;private String addr;// 省略setter、getter、构造、toString等方法
}

项目结构:
在这里插入图片描述
UserMapper接口:

public interface UserMapper {User getUserById(Integer id);List<User> getAllUser();
}

UserMapper.xml映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.mapper.UserMapper"><select id="getUserById" resultType="com.mybatis.po.User">select id, user_name as userName, password, gender, addr from tb_user where id = #{id}</select><select id="getAllUser" resultType="com.mybatis.po.User">select id, user_name as userName, password, gender, addr from tb_user</select><insert id="insert">insert into tb_user (id,user_name, password, gender, addr)values(#{id}, #{userName}, #{password}, #{gender}, #{addr});</insert>
</mapper>

其中mapper标签的namespace字段传入的是UserMapper全限定类名,即包含包前缀

以select字段举例,id就是方法名,resultType就是返回类型的全限定类名。

MybatisDemo测试:

public static void main(String[] args) {// 1.构建SqlSessionFactoryInputStream is = null;try {is = Resources.getResourceAsStream("mybatis-config.xml");} catch (IOException e) {throw new RuntimeException(e);}SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);// 2.从sqlSessionFactory中获取sqlSession(打开会话)SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);// 3.获取用户列表,User user = mapper.getUserById(1);System.out.println(user);List<User> allUser = mapper.getAllUser();for (User user1 : allUser) {System.out.println(user1);}User user = new User();user.setUserName("mybatis");user.setGender("男");user.setPassword("123456");user.setAddr("idea");Integer i = mapper.insert(user);System.out.println(i);//新增操作需要手动提交sqlSession.commit();}

运行结果:

User{id=1, userName='zhangsan', password='123', gender='男', addr='北京'}
User{id=1, userName='zhangsan', password='123', gender='男', addr='北京'}
User{id=2, userName='李四', password='234', gender='女', addr='天津'}
User{id=3, userName='王五', password='11', gender='男', addr='重庆'}
1

这样,我们就成功配置并跑通测试了一个Mybatis案例。

2、Mybatis核心配置

properties配置 :
mybaits-config.xml更改添加配置:

<properties><property name="dbUserName" value="root"/><property name="dbPassword" value="root"/><property name="dbDriver" value="com.mysql.cj.jdbc.Driver"/><property name="dbUrl" value="jdbc:mysql:///mybatis?userSSL=false"/></properties><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${dbDriver}"/><property name="url" value="${dbUrl}"/><property name="username" value="${dbUserName}"/><property name="password" value="${dbPassword}"/></dataSource></environment></environments>

简单来说,其实就是将原本environments配置项中的property参数替换成了。
prepertys中配置的各属性,这样方便修改,进行了解耦操作。

typeAlias别名:
在这里插入图片描述

映射器:

在这里插入图片描述
其余配置可去官网查阅。

3、resultMap字段映射

这里主要是resultMap的使用,涉及数据库中蛇形命名字段和实体类中的驼峰命名字段的映射。

修改UserMapper.xml:

    <resultMap id="userMap" type="com.mybatis.po.User"><result column="user_name" property="userName"/></resultMap><select id="getUserById" resultMap="userMap">select id, user_name, password, gender, addr from tb_user where id = #{id}</select><select id="getAllUser" resultMap="userMap">select id, user_name , password, gender, addr from tb_user</select>

resultMap的作用就是将数据库的column字段映射到java对象的property字段。

4、获取主键值

一般我们在插入操作之后,字段会有一个自增id,我们想要获取其值的话需要映射文件进行如下设置。
UserMapper.xml:

	<insert id="insert" useGeneratedKeys="true" keyProperty="id">insert into tb_user (id,user_name, password, gender, addr)values(#{id}, #{userName}, #{password}, #{gender}, #{addr});</insert>

keyProperty表明主键字段名是什么,useGeneratedKeys = true如果想获取主键就要开启。
测试代码:

		User user = new User();user.setUserName("mybatis02");user.setGender("男");user.setPassword("123456");user.setAddr("idea");Integer i = mapper.insert(user);System.out.println("主键值为:" + user.getId());//新增操作需要手动提交sqlSession.commit();

运行结果:

6

5、抽取公共字段

修改UserMapper.xml:

	<sql id="baseColumn">id, user_name, password, gender, addr</sql><select id="getUserById" resultMap="userMap" >select <include refid="baseColumn"/> from tb_user where id = #{id}</select><select id="getAllUser" resultMap="userMap">select <include refid="baseColumn"/> from tb_user</select>

6、参数处理

主要是一个@Param注解
UserMapper添加方法:

List<User> findUserByCondition(@Param("id") Integer id, @Param("gender") String gender);

UserMapper.xml:

<select id="findUserByCondition" resultType="com.mybatis.po.User">select <include refid="baseColumn"/> from tb_userwhere gender = #{gender} and id = #{id}</select>

我们只需要清楚,@Param()里面设置的参数名是什么,我们在sql语句中使用的时候,#{}里面就写什么。

面试知识点,#{}与${}的区别:

#{}: 预编译处理,防止 SQL 注入,使用占位符 ?,值作为参数传递,适用于动态值。
${}: 直接字符串替换,未预编译,可能导致 SQL 注入,适用于表名、列名等非动态值。

简单来说,就是#{}会给你传进来的参数值上面加一个 ’ ‘,而 不会, {}不会, 不会,{}适合需要动态指定表名的时候使用,因为表名不能加’ ', 而且只能使用这个。

7、动态sql

如图,常用的其实也就是if和foreach标签,可以理解为java中的if和for循环语句。
UserMapper.xml:

<select id="findUserByCondition" resultType="com.mybatis.po.User">select <include refid="baseColumn"/> from tb_userwhere<if test="gender != null and gender != ''">gender = #{gender}</if><!--foreach可以对集合进行循环,加入ids是传进来的一个id集合,像是我们java中for循环遍历--><!-- open表示从什么开始,close表示用什么结束,separator表示用什么分割参数,item表示形参名 -->and id in<foreach collection="ids" item="temId" open="(" close=")" separator=",">#{temId}</foreach></select>

深入学习可点击文章最开始去Mybatis3官网学习。

http://www.dtcms.com/wzjs/207735.html

相关文章:

  • 北京网站开发网站建设浩森宇特贴吧引流推广
  • 外贸企业独立建站海口seo计费
  • 网站做多久才能每日上万免费营销培训
  • 装饰公司做网站网络营销手段
  • 前端怎么做电商网站神童预言新冠2023结束
  • 网网站建设设计公司有哪些免费推广网站
  • 洛阳市住房和城乡建设网站镇江百度公司
  • 做汇算清缴在哪个网站下下载百度app下载
  • dw做动态网站站点怎么seo快速排名软件
  • 上海市场监督管理局win7优化大师官网
  • 行业协会网站模板网站网络排名优化方法
  • 营销网站结构东莞网络营销渠道
  • 哈尔滨个人优化排名自己的网站怎么样推广优化
  • wordpress newcon优化大师的作用
  • 大型大型网站制作宁波seo营销
  • 找人做方案的网站推广普通话
  • 济南集团网站建设公司厦门关键词优化企业
  • 武汉天元千川渔具有限公司系统优化软件排行榜
  • 一网信息一个简单便捷的新闻网站优化大师免费安装下载
  • 河南省住房和城乡建设厅人教处网站营销对企业的重要性
  • 快手秒刷自助网站免费的舆情网站入口在哪
  • 域名注册查询入口网址智能优化网站
  • 广告联盟做网站广告网站有哪些
  • 淘宝上找人做网站推广方案的内容有哪些
  • 视频网站建设服务网络营销工具介绍
  • 免费注册店铺位置武汉网络推广优化
  • 重庆有网站公司许昌网络推广外包
  • web程序设计与实践做网站数据分析培训
  • 集团网站建设成都广州seo排名优化
  • app网站建站系统建立网站费用大概需要多少钱