您现在的位置是:主页 > news > 福州网站建设推广平台/成crm软件
福州网站建设推广平台/成crm软件
admin2025/6/26 17:40:41【news】
简介福州网站建设推广平台,成crm软件,万网域名注册电话,合肥网站开发建设一.jdbc的缺点 1.1 缺点描述 原始的jdbc在开发中存在如下问题: 1.数据库连接创建、释放频繁造成系统资源浪费从而影响系统的性能。 2.sql语句在代码中编码、造成代码不方便维护,实际应用sql变化的可能较大,sql变动需要改变java代码。 3.…
一.jdbc的缺点
1.1 缺点描述
原始的jdbc在开发中存在如下问题:
1.数据库连接创建、释放频繁造成系统资源浪费从而影响系统的性能。
2.sql语句在代码中编码、造成代码不方便维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
3.查询操作时,需要手动将结果集中的数据手动封装到实体中,插入数据时,需要手动将实体的数据设置到sql语句的占位符位置。
1.2 解决方案
1.使用数据库连接池初始化连接资源
2.将sql语句抽取到xml配置文件中。
3.使用反射,内省等底层技术,自动将实体与表进行数学与字段的自动映射。
二.mybaits的介绍
2.1 mybaits是什么?
mybaits是一个优秀的给基于java的持久层框架,它封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费太多精力去处理加载驱动、创建连接、创建statement等繁琐的过程。
mybaits通过xml或注解的方式将要执行的各种statemnt配置起来,并通过java对象和statemnt中sql的动态参数进行映射成最终执行的sql语句。
mybatis框架执行并将结果映射为java对象并返回。采用ORM思想来解决实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api的底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。
简而言之:mybaits是一个持久层的框架,对jdbc的封装,采用ORM思想,将sql语句映射成java实体,不必太关心底层的实现细节。
三.mybaits工程的搭建步骤
3.1 搭建步骤概览
1.添加mybaits的坐标
2.创建user的数据表
3.编写user实体类
4.编写映射文件UserMapper.xml
5.编写核心文件SqlMapConfig.xml
6.编写测试类
3.2 操作具体流程
3.2.1 创建项目mybaits-demo
最后建工程如下:
3.2.2 在pom文件中配置依赖
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!--mywql dueong --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version></dependency><!--mybaits --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency><!-- log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
防止加载找不到文件路径:pom文件再加入以下代码
<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build>
3.2.3.创建javavean
package com.mybaits.demo.bean;/*** @ClassName: User* @Description: TODO* @Author: liujianfu* @Date: 2021/01/23 20:45:36 * @Version: V1.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;}@Overridepublic String toString() {return "User{" +"id=" + id +", userName='" + userName + '\'' +", password='" + password + '\'' +'}';}
}
3.2.4.创建数据库表
CREATE TABLE `tb_user` (`id` int(11) NOT NULL COMMENT '注解',`user_name` varchar(255) DEFAULT NULL COMMENT '姓名',`password` varchar(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.2.5 创建resouces目录
1.在src\mian下创建resouces文件夹
3.2.6 在resouce目录下创建mapper文件和核心配置文件
1.jdbc配置文件,mybaits-jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/nongda
jdbc.username=root
jdbc.password=
2.创建mapper文件,在resouces文件目录下,新建com/mybaits/mapper/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="yonghuMapper"><!-- 查询 --><select id="findAll" resultType="com.mybaits.demo.bean.User">select id,user_name,password from tb_user</select><!-- 添加--><insert id="addUser" parameterType="com.mybaits.demo.bean.User">insert into tb_user(id,user_name,password) values(#{id},#{userName},#{password})</insert><!-- 修改--><update id="updateUser" parameterType="com.mybaits.demo.bean.User">update tb_user set user_name=#{userName} where id=#{id}</update><!-- --><delete id="delUser" parameterType="java.lang.Integer">delete from tb_user where id=#{id}</delete>
</mapper>
3.创建核心配置文件:mybaitsConfig.xml
<?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>
<properties resource="mybaits-jdbc.properties"></properties>
<!-- 数据源环境 --><environments default="developement"><environment id="developement"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!-- --><mappers><mapper resource="com/mybaits/mapper/UserMapper.xml"></mapper></mappers></configuration>
4.整个代码的结构如下:
四.crud操作案例
4.1 新增
代码:
public static void add() throws IOException {User user=new User();user.setId(1);user.setUserName("ljf");user.setPassword("123");//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.insert("yonghuMapper.addUser",user);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}
结果:
4.2 查询
1.查询
public static void query() throws IOException {//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlList<User> userList=sqlSession.selectList("yonghuMapper.findAll");//打印资源System.out.println("userlist:"+userList);//关闭释放资源sqlSession.close();}
2.查询
4.3 修改
代码:
public static void update() throws IOException {User user=new User();user.setId(1);user.setUserName("liu");user.setPassword("123");//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.update("yonghuMapper.updateUser",user);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}
4.4 删除
public static void del() throws IOException {//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.delete("yonghuMapper.delUser",1);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}
4.5 完整代码
package com.mybaits.demo;import com.mybaits.demo.bean.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.List;/*** Hello world!**/
public class App
{public static void main( String[] args ) throws IOException {// add();// query();// update();del();System.out.println( "Hello World!" );}public static void query() throws IOException {//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlList<User> userList=sqlSession.selectList("yonghuMapper.findAll");//打印资源System.out.println("userlist:"+userList);//关闭释放资源sqlSession.close();}public static void add() throws IOException {User user=new User();user.setId(1);user.setUserName("ljf");user.setPassword("123");//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.insert("yonghuMapper.addUser",user);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}public static void update() throws IOException {User user=new User();user.setId(1);user.setUserName("liu");user.setPassword("123");//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.update("yonghuMapper.updateUser",user);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}public static void del() throws IOException {//加载核心配置文件InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");//获得sqlsession 工厂对象SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);//获得sqlsession对象SqlSession sqlSession=sqlSessionFactory.openSession();//执行sqlsqlSession.delete("yonghuMapper.delUser",1);//mybaits 执行更新操作,提交事务sqlSession.commit();//关闭释放资源sqlSession.close();}
}