可以通过主配置文件解决频繁创建、释放的问题
动态sql
通过包装类获取数据库查询对象:session封装了很多方法,可以直接返回一个对象
使Dao层业务逻辑和数据库访问分离更易维护和测试
Mybatis:
1.读取配置文件:
主配置文件sqlMapConfig.xml,里面可以设置连接数据库的信息
2.sqlSessionFactory
可以通过主配置文件解决频繁创建、释放的问题
动态sql
通过包装类获取数据库查询对象:session封装了很多方法,可以直接返回一个对象
使Dao层业务逻辑和数据库访问分离更易维护和测试
Mybatis:
1.读取配置文件:
主配置文件sqlMapConfig.xml,里面可以设置连接数据库的信息
2.sqlSessionFactory
配置连接池的时候db.properties文件中的属性名要与applicationContext.xml dataSource 属性名要一致
如果有同学遇到MyBatis Generator生成的实体类和数据库指定表中的数据不一样这个问题,需要在<jdbcConnection>这个标签里面配置这样一个<property>属性
<property name="nullCatalogMeansCurrent" value="true"/>
详细信息请参考以下链接:
https://blog.csdn.net/weixin_41809435/article/details/85207563
连接对象,connection
查询对象,preparestatemen
结果集。resulrset。
加载驱动。
关闭结果集,关闭对象,关闭连接。
四个包 build path
有点不理解为什么没有写 parameterType但是呢能够传递参数
set 标签 解决更新数据表时字符串拼接逗号"," 问题
<where></where> 代替 where
他可以帮助去掉 前and
<trim prefix="where" prefixOverrides="and"></trim>
用于代替 上面的where ,并且使用suffixOverrides="and" 可以去掉 后and
id 写主键
result 写普通属性 这样能够增加性能
为什么学习框架?
所谓框架,
首先创建一个接口
接口的方法名与mapper.xml中需要调用的sql语句的id一致
接口的返回值类型与xml的返回值类型一致
接口的参数类型和xml中的
添加用户
在操作数据库的语句中
可以不要返回值
将传递的参数添加;比如添加一个user对象
用set方法加入所需的东西
如果用select就用select的标签
如果要插入就用insert标签
以此类推
字符串拼接(%${}%)和占位符(#{})的区别
SQL中各有一个比较有意思的事情,当我们使用字符串拼接的时候我们会使用%王%,
这样会导致sql注入(不安全)
但是在sql中可以使用两个双引号包裹%来解决
“%”‘王’“%”
在mtbayis中将‘王’用#{name}代替即可
字符串拼接(%${}%)和占位符(#{})的区别
SQL中各有一个比较有意思的事情,当我们使用字符串拼接的时候我们会使用%王%,
这样会导致sql注入(不安全)
但是在sql中可以使用两个双引号包裹%来解决
“%”‘王’“%”
在mtbayis中将‘王’用#{}
在xml中写sql语句
在user中调用xml映射
for循环中用于输出list中给存放的结果集。
在mybatis中 模糊查询(like)中 我们在sql中写%王%在mybatis中用%${王}%,用${}去包裹字符串
在mapper中
namespace给文件重新命名
在select中
需要完整的select sql语句
在mybatis中需要
selcet id
select语句中占位符不在使用?而使用sql
parameterType中放置类型
打开Package Explorer
新建working set :项目空白区域右键new ->other-java->...
显示新建的working set
取代dao层
1.jdbc耗资源,重复的获取连接
2.jdbc
3.sql语句查询