对象关系映射(ORM)框架SqlSessionFactory对数据库进行增删改

对象关系映射(ORM)框架SqlSessionFactory对数据库进行增删改

首先,由于是学习的Maven,用的Eclipse创建MavenProject的项目包咯,在对应的pom.xml里需要配置一些数据和自动导入几个包。

当然啦,一些需要的架包在网上都有的下载,这里我就上图吧。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这就是所需要的Mawen包咯,在输入这些指向性的代码系统会自己加载架包进入我们的Eclipse。
当然啦,加载架包的时候切记不要乱动,不然怕加载不成功,会让我们的程序缺少东西,让程序不能完全的运行起来。

下一步就要用连接数据库的Properties了,有C3P0,DCPC,JDBC。当然啦,这个导入看情况而定,有些时候一个Properties用不了就换一个链接嘛。
在这里插入图片描述

这三个看着导入了然后输入连接数据就好了,具体数据就不详细拉入图片了,一些基础的用法,实在记不完全可以在网上查找到的。

接着,肯定是先创建需要用到数据库的表所对应的元素所有类啦

把对应的表和数据都代入类中,话不多说,上代码
在这里插入图片描述这是我表里所有的元素分别用什么类型修饰,因为包装类型比基本数据类型在运行时更容易看出问题的所在,所有我采用的包装数据类型。

mybatis 是 SQL Mapper framework,JDBC是建立在mybatis和数据库之间的通道。mybatis 将对JDBC的操作封装和抽象。Mybatis中关于数据库的类都在org.apache.ibatis.datasource包中 。

BasicDataSourceDataFactory主要根据一个实现了DataSource接口的对象,获取该对象的相关数据源配置参数。

接着就是创建一个类的对象来实现DataSourceDataFactory的接口了,实现接口后,系统会提示你把它里面的两个方法写出来,然后返回到一个新的ComboPooledDataSource存储数据源接口池。

来来来 代码走起
在这里插入图片描述

这就是开始连接数据库的基本类和方法了,当然了,连接数据库和怎样用Connection连接我就不仔细写入了,一些基本步骤。

然后就是新建一个XML,分别有以下的属性。
**<?xml version="1.0" encoding="UTF-8" ?>

//连接数据库的properties //所创建包的名字 //JDBC连接 //实现DataSourceDataFactory的接口的路径 //后面sql所需要的xml。 **

是时候建立一个数据库的CUD(增删改的XMLsql语句了)

这个语句在http://www.mybatis.org/mybatis-3/zh/getting-started.html有详细的介绍和写法,我就只上两种了,有兴趣的朋友可以去看看。

<mapper namespace="demo.sqlConfig">

**<insert id="insertBook" useGeneratedKeys="true" keyProperty="id">
    insert into t_book (id,bookId, bookName, author, price,publishDate,kind,totalStore,totalSold,pic,profile,status)
     values (#{id},#{bookId}, #{bookName}, #{author}, #{price},#{publishDate},#{kind},#{totalStore},#{totalSold},#{pic},#{profile},#{status}
    )
</insert>**

***这是增加的sql语句, insert into 接我的表名,由于我的数据库中表里的元素有这么多,所以只能写出来,也能够有另外一种方法。可以让上面增加的sql语句变得简洁点。

这是sql增加语句的打包方法

insert into t_book() value() id,bookName,bookId,author,price,publish_date,kind,total_store,total_sold,pic,profile,status #id{}#{bookId},#{bookName},#{author},#{price},#{publishDate},#{kind},#{totalStore},#{totalSold},#{pic},#{profile},#{status}

各位看着那种喜欢就用那种吧,我就都上代码了,感觉第二种比较简洁,让人看着清爽些。

注释@Test @After @Before 都要导包才不会报错。
@Test导入后点击方法名 可以独自运行此方法

然后就是sql语句的删除了,这个很简单,一句简单的代码就完了。

**

delete from t_book where id=#{id}

**

最后,就是sql的修改sql语句了,相比增删,还是复杂了一丢丢啦。


update t_book


bookName = #{bookName},


price = #{price},


pic = #{pic}


where bookId = #{bookId}

我这里直接用了trim也就是修剪的方法,可以让你的代码中的不需要的代码被修剪掉,也就是set和逗号,如果没有,系统就会报错,trim还有就是,有数据为null或者没有数据的时候,语句也能够执行。
当然了,也可以直接用方法给修改包裹起来,这里我就不详细写了。上面的网站里有详细的说明。

终于到最后一步了,也就是所需要的最终输出的类。

首先,创建一个所有sql属性的方法,然后赋予sqlSessionFactory据库session的连接工厂配置

然后before先前的方法,然后SqlSessionFactoryBuilder实例化Resources 类加载资源getResourceAsReader,接着将先前的sql语句XML传进。

创建增删改的方法,并且实例化所创建的Book数据类,引入自己所需要的数据和对应的参数,打印出受影响的行数和添加的id。
好了,上代码。
在这里插入图片描述
这是增加和修改的方法,里面是所传入的参数和对面的包里的数据。
在这里插入图片描述
删除的方法最为简单。
对了,请不要忘了关闭session哦。
@After
public void CloseBook(){
session.close();
}

最后输出在系统了看到日志。

在这里插入图片描述

这就是日志所显示的sql语句和改变的参数。
谢谢大家的观看,新人上路,请多多关照。

猜你喜欢

转载自blog.csdn.net/nan961136007/article/details/83759234