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

网站用什么颜色旅游扁平化设计网站模板

网站用什么颜色,旅游扁平化设计网站模板,长沙网站制作有哪些公司,南宁网站建设公司哪里1. Mybatis中#和$的区别? #相当于对数据 加上 双引号,$相当于直接显示数据 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为orde…

1.  Mybatis中#和$的区别?

#相当于对数据 加上 双引号,$相当于直接显示数据 
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".

2.  $将传入的数据直接显示生成在 sql 中。如:order  by $user_id$,如果传入的值是 111,那么解析成 sql 时的值为order by user_id,  如果传入的值是id,则解析成的sql为order by id.

3. #方式能够很大程度防止sql注入。 

4.$方式无法防止Sql注入。 

5.$方式一般用于传入数据库对象,例如传入表名. 

6.一般能用#的就别用$. 

2.  Mybatis的编程步骤是什么样的?

1、创建SqlSessionFactory

2、通过SqlSessionFactory创建SqlSession 

3、通过sqlsession执行数据库操作 

4、调用session.commit()提交事务 

5、调用session.close()关闭会话 

3.  JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?

1. 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。  解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。 

2. Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。  解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。 

3. 向 sql 语句传参数麻烦,因为 sql 语句的 where 条件不一定,可能多也可能少,占位符需要和参数一一对应。  解决: Mybatis自动将java对象映射至sql语句。 

4. 对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。 

解决:Mybatis自动将sql执行结果映射至java对象。 

4.  使用MyBatis的mapper接口调用时有哪些要求?

1. Mapper接口方法名和mapper.xml中定义的每个sql的id相同 
2. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同 3. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同 4. Mapper.xml文件中的namespace即是mapper接口的类路径。 

5.  Mybatis中一级缓存与二级缓存?

1. 一级缓存: 基于 PerpetualCache 的  HashMap 本地缓存,其存储作用域为  Session,当  Session flush 或 close 之后,该Session中的所有  Cache 就将清空。 

2. 二级缓存与一级缓存其机制相同,默认也是采用  PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如  Ehcache。作用域为namespance是指对该namespance对应的配置文件中所有的select操作结果都缓存,这样不同线程之间就可以共用二级缓存。启动二级缓存:在mapper配置文件中:<cache />。 

二级缓存可以设置返回的缓存对象策略:<cache readOnly="true">。当readOnly="true"时,表示二级缓存返回给所有调用者同一个缓存对象实例,调用者可以 update 获取的缓存实例,但是这样可能会造成其他调用者出现数据不一致的情况(因为所有调用者调用的是同一个实例)。当readOnly="false"时,返回给调用者的是二级缓存总缓存对象的拷贝,即不同调用者获取的是缓存对象不同的实例,这样调用者对各自的缓存对象的修改不会影响到其他的调用者,即是安全的,所以默认是readOnly="false"; 
3. 对于缓存数据更新机制,当某一个作用域(一级缓存Session/二级缓存Namespaces)的进行了  C/U/D 操作后,默认该作用域下所有  select 中的缓存将被clear。 

6.  MyBatis在insert插入操作时返回主键ID

数据库为MySql时: 

1. <insert id="insert" parameterType="com.test.User" keyProperty="userId"

useGeneratedKeys="true" >

“keyProperty”表示返回的id要保存到对象的那个属性中,“useGeneratedKeys”表示主键id为自增长模式。MySQL中做以上配置就OK了 

数据库为Oracle时: 

1. <insert id="insert" parameterType="com.test.User">

2.    <selectKey resultType="INTEGER" order="BEFORE" keyProperty="userId">

3.        SELECT SEQ_USER.NEXTVAL as userId from DUAL 

4.    </selectKey> 

5.     insert into user (user_id, user_name, modified, state)

6.     values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR},

#{modified,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER}) 

7. </insert> 

由于 Oracle 没有自增长一说法,只有序列这种模仿自增的形式,所以不能再使用“useGeneratedKeys”属性。 而是使用<selectKey>将ID获取并赋值到对象的属性中,insert插入操作时正常插入id。 

http://www.yayakq.cn/news/297113/

相关文章:

  • 蛋糕方案网站建设wordpress下载类模板下载
  • 长春市城乡建设部网站wordpress地图
  • 太原网站seo外包-1网站建设
  • 苏州新区网站建设南昌那个公司做网站好
  • wordpress 网站打不开wordpress添加新页面
  • 新泰网站建设方案苏州企业网站开发
  • 像饿了码的网站建站有吗环影视界免费版wordpress主题
  • 做网站的功能是什么福山区建设工程质量检测站网站
  • wordpress 建站免费网页版梦幻西游哪个职业厉害
  • 深圳罗湖网站制作公司公司网站做的一样算不算侵权6
  • 大石桥网站建设wordpress 音乐主题模板
  • 金昌做网站网游排行榜2021前十名
  • 广西柳州网站建设小程序公司wordpress标签后多了一个()
  • 宝安建设网站免费源码网站
  • 兰州百姓网免费发布信息网站3e网站建设
  • 国外免费源码网站网站的logo怎么换
  • 百度网站权重找网络公司做网站需要注意什么
  • 提供网站建设价格wordpress auto tags
  • 馆陶网站建设电话青岛高端模板建站
  • 舞蹈网站模版网站色彩
  • 网站管理更新维护做cpa广告网站教程
  • 家电维修品牌网站建设网站建设对企业的作用
  • 商务网站建设公wordpress flv
  • 网站建设基础书本天津专门做企业网站公司
  • 高端网站建设公司新鸿儒wordpress评论高亮
  • 建设部网站 防火规范公司网站首页布局图
  • 免费商城自助建站电商购物网站
  • 注册网站后怎么建设商家商城小程序
  • 电子商务网站建设需要学什么wordpress数据库名字
  • 网站分析表重庆市建设工程信息网官网人