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

南京网站搭建广告推广方式

南京网站搭建,广告推广方式,什么网站做h5好,武汉企业网站推广公司mybatis 1、mybatis的作用 2、封装JDBC 3、mybatis基于XML配置 4、Mapper代理开发 1、mybatis的作用 1、再MVC三层模式中mybatis作用于DAO层。 2、进行与数据库连接。 3、事务管理:支持数据操作进行手动或自动事务管理,确保数据 提交的一致性和可…

mybatis

1、mybatis的作用

2、封装JDBC

3、mybatis基于XML配置

4、Mapper代理开发

1、mybatis的作用

1、再MVC三层模式中mybatis作用于DAO层。

2、进行与数据库连接。

3、事务管理:支持数据操作进行手动或自动事务管理,确保数据
提交的一致性和可靠性。

4、通过SQL语句执行对数据库的CRUD操作,提供数据持久化。

2、封装JDBC

MyBatis相较于JDBC简化了以下开发:

        1.数据库连接管理:使用JDBC进行数据库操作时,需要手动获取数据库连接、释放数据库连接等操作,在高并发的情况下还需要面对连接池的问题。而在MyBatis中,数据源(DataSource)等连接管理工作都被封装好了,用户只需要关注执行SQL语句即可。

        2.预处理和执行SQL语句:在JDBC中,需要通过Statement对象或PreparedStatement对象来进行预处理和执行SQL语句。MyBatis将执行SQL语句的相关操作都封装成接口方法,用户通过Mapper文件或注解来配置对应的SQL语句,消除了样板式代码,使得代码更加简洁易懂。

        3.处理结果集:在JDBC中,需要使用ResultSet对象来处理查询结果集,通过访问ResultSet对象的列名或是序号来获取结果。而在MyBatis中,支持将查询结果自动封装为Java属性对象列表或者Map映射,可以避免重复的属性名称声明以及类型不匹配的异常。

        4.事务管理:JDBC需要通过Spring框架或编写大量的代码来进行事务管理。而MyBatis提供了默认的SqlSession事务模式、支持Spring事务以及托管给全局事务管理器三种事务管理方式,并且对事务Rollback、Commit进行了封装,简化了事务处理流程。

MyBatis采用了不同的架构和设计理念,封装了JDBC底层操作,并提供了更方便、高效的CRUD编程接口以及自动参数映射和结果集处理,大大简化了数据库开发。

3、mybatis基于XML配置

1、创建Maven项目
2、在maven项目中下载mybatis和mysql的依赖

pom.xml
 <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency></dependencies>

3、创建mybatis核心配置文件,在src\main\resources下创建mybatis-config.xml文件

src\main\resources\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.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!-- 映射器 --><mappers><!-- 引入映射文件,如果有多个文件,则在此处添加 --><mapper resource="UserMapper.xml"/></mappers></configuration>

注意在这些代码中修改自己的mysql配置

<transactionManager type="JDBC"/><!-- 配置数据源,注意这里要配置自己的数据库驱动和连接参数 --><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/exampleDB?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"/><property name="username" value="root"/><property name="password" value="123456"/>

4、创建UserMapper.xml文件

src\main\resources\UserMapper.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="UserMapper"><!-- 定义查询所有用户的 SQL 语句--><select id="findAllUsers" resultType="src.main.com.example.DAO.User">SELECT * FROM tb_user;</select><!-- 定义根据用户 ID 查询用户的 SQL 语句--><select id="findUserById" parameterType="int" resultType="src.main.com.example.DAO.User">SELECT * FROM tb_user WHERE id = #{id};</select><!-- 定义新增用户的 SQL 语句--><insert id="addUser" parameterType="src.main.com.example.DAO.User">INSERT INTO tb_user(username, password) VALUES (#{username}, #{password});</insert><!-- 定义根据用户 ID 删除用户的 SQL 语句--><delete id="deleteUserById" parameterType="int">DELETE FROM tb_user WHERE id = #{id};</delete><!-- 定义根据用户 ID 更新用户密码的 SQL 语句--><update id="updatePasswordById" parameterType="map">UPDATE tb_user SET password = #{newPassword} WHERE id = #{userId};</update></mapper>

5、创建数据库的实体类,实体类要根据我们创建的mysql数据库相对应
实体类中的每一个属性,都有一个mysql属性与之相对应
 

src\main\java\com\example\pojo\User.java
package src.main.com.example.pojo;public class User {private Integer id;private String username;private int password;private String gender;private String addr;public User() {}public User(int id, String username, int password, String gender, String addr) {this.id = id;this.username = username;this.password = password;this.gender = gender;this.addr = addr;}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 int getPassword() {return password;}public void setPassword(int password) {this.password = password;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password=" + password +", gender='" + gender + '\'' +", addr='" + addr + '\'' +'}';}
}

6、创建测试类

src\main\java\com\example\text\Text.java
package src.main.com.example.text;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;
import java.util.List;public class Text{public static void main(String[] args) throws IOException {// 加载核心配置文件路径String resource = "mybatis-config.xml";//通过SqlesSsionFactor实例化SqlSessionFactor//然后通过SqlSessionFactor的openSqlSession()方法获取SqlSession对象InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//使用SqlSession来执行SQL语句List<User> user = sqlSession.selectList("UserMapper.findAllUsers");System.out.println(user);sqlSession.close();}
}
4、Mapper代理开发

mapper代理开发,让我们在调用sql语句时会更加方便
我们在原来的配置上进行如下修改

1、创建一个与映射文件(UserMapper.xml)同名的接口文件,

2、接口文件中定义方法,方法名与映射文件中的id一致,返回
类型也要和resultType一致

3、注意返回是一个对象还是多个对象,多个对象要用list集合接收

下面我们创建与映射文件同名的接口,并且定义方法
src/main/com/example/mapper/UserMapper
ackage src.main.com.example.mapper;public interface UserMapper {list<User> findAllUsers();User findUserById();User  addUser();User deleteUserById();User updatePasswordById();}

2、第二步要将我们的映射文件(UserMapper.xml)与接口文件(UserMapper)放在同一个包中

1、方法一:直接将映射文件拖入mapper包下
2、方法二:为了统一管理,我们直接在reserces下创建一个
com/example/mapper,再将映射文件拖入该文件下,可以达到同样的效果

3、修改映射文件的namespace,以前这个值是可以谁便取得,但现在要将它改为接口文件的路径

在UserMapper.xml中修改namespace
<?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="src/main/com/example/mapper"><!-- 定义查询所有用户的 SQL 语句--><select id="findAllUsers" resultType="src.main.com.example.DAO.User">SELECT * FROM tb_user;</select><!-- 定义根据用户 ID 查询用户的 SQL 语句--><select id="findUserById" parameterType="int" resultType="src.main.com.example.DAO.User">SELECT * FROM tb_user WHERE id = #{id};</select><!-- 定义新增用户的 SQL 语句--><insert id="addUser" parameterType="src.main.com.example.DAO.User">INSERT INTO tb_user(username, password) VALUES (#{username}, #{password});</insert><!-- 定义根据用户 ID 删除用户的 SQL 语句--><delete id="deleteUserById" parameterType="int">DELETE FROM tb_user WHERE id = #{id};</delete><!-- 定义根据用户 ID 更新用户密码的 SQL 语句--><update id="updatePasswordById" parameterType="map">UPDATE tb_user SET password = #{newPassword} WHERE id = #{userId};</update></mapper>

4、由于映射文路径置改了,我们的配置文件要引入映射文件,
也要修改为相同路径

修改mybatis-config.xml中的<mapper resorces="">
<?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.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=GMT%2B8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!-- 映射器 --><mappers><!-- 引入映射文件,如果有多个文件,则在此处添加 --><mapper resource="src/main/com/example/mapper/UserMapper.xml"/></mappers></configuration>

5、测试时我们不在使用sqlSessioj的方法,而是使用sqlSession.getMapper()
获取UserMapper接口代理对象,在调用接口中的方法

src/main/java/com/example/text/Text.java
import java.io.IOException;
import java.io.InputStream;
import java.util.List;public class Text{public static void main(String[] args) throws IOException {// 加载核心配置文件路径String resource = "mybatis-config.xml";//通过SqlesSsionFactor实例化SqlSessionFactor//然后通过SqlSessionFactor的openSqlSession()方法获取SqlSession对象InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//使用SqlSession.getMapper()来获取UserMapper接口对象UserMapper mapper=sqlSession.getMapper(UserMapper.class);//调用接口方法List<User> user= mapper.findAllUsers();System.out.println(user);sqlSession.close();}
}

文章转载自:
http://kilohm.rkdw.cn
http://derogation.rkdw.cn
http://yeastiness.rkdw.cn
http://alias.rkdw.cn
http://surfbird.rkdw.cn
http://handguard.rkdw.cn
http://premune.rkdw.cn
http://woozy.rkdw.cn
http://anna.rkdw.cn
http://cubanologist.rkdw.cn
http://lavash.rkdw.cn
http://cotopaxi.rkdw.cn
http://solifidian.rkdw.cn
http://dumet.rkdw.cn
http://unnecessaries.rkdw.cn
http://sophi.rkdw.cn
http://assuringly.rkdw.cn
http://effluvium.rkdw.cn
http://splanchnopleure.rkdw.cn
http://refutatory.rkdw.cn
http://biodynamic.rkdw.cn
http://jessamin.rkdw.cn
http://sate.rkdw.cn
http://gag.rkdw.cn
http://boeotian.rkdw.cn
http://supererogation.rkdw.cn
http://amphibole.rkdw.cn
http://synesthete.rkdw.cn
http://sebastopol.rkdw.cn
http://hydrobomb.rkdw.cn
http://dahomey.rkdw.cn
http://pursy.rkdw.cn
http://diffidence.rkdw.cn
http://cigarette.rkdw.cn
http://mechanisation.rkdw.cn
http://kimbundu.rkdw.cn
http://symbolistic.rkdw.cn
http://phthisiology.rkdw.cn
http://wheatear.rkdw.cn
http://distemperedly.rkdw.cn
http://peloponnesus.rkdw.cn
http://norsteroid.rkdw.cn
http://evitable.rkdw.cn
http://angekok.rkdw.cn
http://antinoise.rkdw.cn
http://cogon.rkdw.cn
http://curvifoliate.rkdw.cn
http://droop.rkdw.cn
http://inventress.rkdw.cn
http://adolescence.rkdw.cn
http://nifelheim.rkdw.cn
http://microphysics.rkdw.cn
http://soviet.rkdw.cn
http://decrescendo.rkdw.cn
http://vermiculated.rkdw.cn
http://ascariasis.rkdw.cn
http://upturned.rkdw.cn
http://foliiferous.rkdw.cn
http://pygidium.rkdw.cn
http://hashish.rkdw.cn
http://emporia.rkdw.cn
http://regale.rkdw.cn
http://succedaneum.rkdw.cn
http://cornuto.rkdw.cn
http://intumesce.rkdw.cn
http://swoop.rkdw.cn
http://uncompensated.rkdw.cn
http://jcb.rkdw.cn
http://obstetrician.rkdw.cn
http://sexfoil.rkdw.cn
http://lias.rkdw.cn
http://juggle.rkdw.cn
http://confiscation.rkdw.cn
http://polycrystal.rkdw.cn
http://hitlerite.rkdw.cn
http://august.rkdw.cn
http://groupware.rkdw.cn
http://coexecutrix.rkdw.cn
http://spondylolisthesis.rkdw.cn
http://decade.rkdw.cn
http://doorward.rkdw.cn
http://stoa.rkdw.cn
http://plasmosome.rkdw.cn
http://trypsin.rkdw.cn
http://tenantlike.rkdw.cn
http://impracticability.rkdw.cn
http://energize.rkdw.cn
http://zooman.rkdw.cn
http://dipster.rkdw.cn
http://butskellism.rkdw.cn
http://collegia.rkdw.cn
http://punctuality.rkdw.cn
http://soaker.rkdw.cn
http://sodium.rkdw.cn
http://outsentry.rkdw.cn
http://diether.rkdw.cn
http://excerpta.rkdw.cn
http://nembie.rkdw.cn
http://thankful.rkdw.cn
http://spathe.rkdw.cn
http://www.hrbkazy.com/news/86010.html

相关文章:

  • 郑州建网站网络营销策划内容
  • 电脑上怎么做网站网站优化seo教程
  • 中国2020最新军事新闻seo技术服务外包
  • 汕头关键词优化服务 seo won
  • 用php做动态网站大作业为什么中国禁止谷歌浏览器
  • 关键词seo排名怎么选成都网络优化托管公司
  • 做羞羞事的网站有哪些我想学做互联网怎么入手
  • 商城网站制作报价网上怎么推广产品
  • 个人网站 云服务器网络营销是什么课程
  • 网站建设后备案多少钱怎么优化网站排名
  • 泰兴做网站的公司百度推广费用可以退吗
  • iis架设jsp网站网站建设是什么
  • 做美食软件视频网站有哪些推蛙网络
  • 注册外贸网站有哪些问题长沙网站seo外包
  • 网站建设_seo技术支持百度云官网入口
  • 网站标签优化济南做网站公司
  • 做的比较好的律师网站东营seo网站推广
  • 去除tag wordpress适合seo软件
  • 手机网站制作流程西安竞价托管代运营
  • wordpress中文主题扬州百度seo公司
  • cms网站内容管理系统网络营销专业主要学什么
  • 网站如何清除百度收录大连seo建站
  • 网站建设 用户管理网站名称查询
  • 驻马店做网站的公司百度客服中心电话
  • 德清做网站的公司做网络销售感觉自己是骗子
  • 做现金贷的网站有哪些陕西seo优化
  • 用flask做的网站有哪些制作网站的网址
  • 单一页面网站怎么做沈阳网站推广优化
  • 网站建设智能优化网络推广公司怎么找客户
  • 重庆wordpress网站建设搜索引擎培训班