1,数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能。
设想:使用数据库的连接池。
2,将sql语句硬编码到java代码中,不利于系统维护。
设想:将sql放到配置文件中。
3,向preparedstatement中设置参数,对占位符位置和设置参数值,硬编码在java代码中,不利于系统维护。
设想:将sql语句及占位符配置到xml中。
4,从resultset中便利结果集时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。
设想;将结果集,自动映射成java对象
二,
1, mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足需要的sql语句。
2, mybatis可以将输入参数自动映射,可以将结果集映射为java对象,并且sql相对自由,不想hibernate那样看不到sql。
3, mybatis需要一个SqlMapConfig。xml,它是mybatis的全局配置文件,其中包括了数据库连接池,配置了数据源,事务等。
4,还需要一个SQLMap配置文件,它配置了映射关系(配置sql语句),sql语句要写在这个配置文件里,其实就是配置了一个声明,避免了sql语句硬编码到Java源文件中。后面会详细介绍这个配置文件的使用。
5, SqlsessionFactory是mybatis中生成Sqlsession的工厂,操作数据库。
mybatis框架结构是把sql语句的映射文件加载到SQLMapConfig中去,然后SqlsessionFactory加载SQLMapConfig后生成Sqlsession, Sqlsession来执行语句。
<强> 1。所需要的jar包强>
即需要下载mybatis包和数据库驱动包,可以从GitHub上下载mybatis,解压后里面有自由文件夹和一个mybatis的核心包,自由中得包是mybatis的依赖包
mybatis的下载
<强> 2。工程结构。强>
src中放源码,自由中放所依赖的jar包,配置中放各种配置文件,配置文件下的sqlmap包中放sql映射文件. lib和配置文件夹创建好后要记得邮件选择构建路径→使用源文件夹
<强>,3。编写log4j。属性强>
#, Global logging 配置 log4j.rootLogger=调试、stdout #,MyBatis logging 配置… log4j.logger.org.mybatis.example.BlogMapper=跟踪 #,Console 输出…… log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=% 5 p t[%],安康;% m % n
,
,注意:开发时log4j。rootLogger=调试、生产环境可以把调试换成信息
<强> 4。编写SqlMapConfig。xml 强>
,
& lt; ? xml version=" 1.0 ",编码=皍tf - 8”, ?在,,, ,,,& lt; ! DOCTYPE 配置 ,,,,PUBLIC “-//mybatis.org//DTD Confi 3.0//EN” ,,,“http://www.mybatis.org/dtd/mybatis-3-config.dtd”在 ,,,& lt; configuration>,,,,,,,,,,,, ,,,,,,,& lt; environments 默认=胺⒄埂痹?, ,,,,,,,,,,,& lt; environment id=胺⒄埂痹?, ,,,,,,,,,,,,,,,& lt; transactionManager type=" JDBC,/在,, ,,,,,,,,,,,,,,,& lt; dataSource 类型=凹小痹?, ,,,,,,,,,,,,,,,,,,,& lt; property name="司机",value=" https://www.yisu.com/zixun/com.mysql.jdbc.Driver ",/在,, ,,,,,,,,,,,,,,,,,,,& lt; property name=" url ", value=" https://www.yisu.com/zixun/jdbc mysql://localhost: 3306/mybatisTest ? characterEncoding=utf - 8”,/在,, ,,,,,,,,,,,,,,,,,,,& lt; property name="用户名",value=" https://www.yisu.com/zixun/root ",/在,, ,,,,,,,,,,,,,,,,,,,& lt; property name="密码",value=" https://www.yisu.com/zixun/123456 ",/在,, ,,,,,,,,,,,,,,,& lt;/dataSource>,, ,,,,,,,,,,,& lt;/environment>,, ,,,,,,,& lt;/environments> ,,,,,,,& lt; mappers> ,,,,,,,& lt; mapper 资源=皊qlmap/user.xml”/比; ,,,,,& lt;/mappers>, ,,,& lt;/configuration>
,
,
,
, & lt; mappers>中包括的是针对每个对象的sql映射文件,环境标签中配置的是数据源,需要变动的只有这两个地方。