![JDBC模板和命名参数模板.ppt_第1页](http://file1.renrendoc.com/fileroot2/2020-1/7/ab746b1f-23ac-4e40-828c-33816c6324e5/ab746b1f-23ac-4e40-828c-33816c6324e51.gif)
![JDBC模板和命名参数模板.ppt_第2页](http://file1.renrendoc.com/fileroot2/2020-1/7/ab746b1f-23ac-4e40-828c-33816c6324e5/ab746b1f-23ac-4e40-828c-33816c6324e52.gif)
![JDBC模板和命名参数模板.ppt_第3页](http://file1.renrendoc.com/fileroot2/2020-1/7/ab746b1f-23ac-4e40-828c-33816c6324e5/ab746b1f-23ac-4e40-828c-33816c6324e53.gif)
![JDBC模板和命名参数模板.ppt_第4页](http://file1.renrendoc.com/fileroot2/2020-1/7/ab746b1f-23ac-4e40-828c-33816c6324e5/ab746b1f-23ac-4e40-828c-33816c6324e54.gif)
![JDBC模板和命名参数模板.ppt_第5页](http://file1.renrendoc.com/fileroot2/2020-1/7/ab746b1f-23ac-4e40-828c-33816c6324e5/ab746b1f-23ac-4e40-828c-33816c6324e55.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JDBC模板和命名参数模板,Spring中对于JDBC的支持,DriverManagerDataSource接口设定数据源 FileSystemXmlApplicationContext来获取数据源 JDBC的XML配置,DriverManagerDataSource,DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName(com.microsoft.jdbc.sqlserver.SQLServerDriver); ds.setUrl(jdbc:microsoft:sqlserver:/
2、127.0.0.1:1433;DatabaseName=jdbcsql); ds.setUsername(sa); ds.setPassword(789654); Connection conn = ds.getConnection();,Spring中对于JDBC的支持, ,获取数据源,获取DataSource的初始化代码: ApplicationContext context = new FileSystemXmlApplicationContext(“bean.xml”); DataSource datasource = (DataSource)context.getBean(“data
3、source”); /从数据源中获取连接 Connection conn = datasource.getConnection();,目标,Spring之JdbcTemplate操作 JdbcTemplate简介 update(String sql,Object obj); query(String sql,Object obj,RowMapper rowMapper) queryForObject(String sql,Object obj,RowMapper rowMapper) queryForInt(String sql,Object obj) queryForMap(String s
4、ql,Object obj) Spring之NamedParameterJdbcTemplate操作 NamedParameterJdbcTemplate简介 Update(String sql, SqlParameterSource ps) Update(String sql, Map paramMap) getJdbcOperations().query(String sql, RowMapper rowMapper) query(String sql, SqlParameterSource ps,RowMapper rowMapper); queryForObject(String sq
5、l, SqlParameterSource ps,RowMapper rowMapper) queryForObject(String sql, SqlParameterSource ps,Class RequiredType),JdbcTmeplate简介,JdbcTemplate是core包的核心类。它替我们完成了资源的创建以及释放工作,从而简化了我们对JDBC的使用。它还可以帮助我们避免一些常见的错误,比如忘记关闭数据库连接。JdbcTemplate将完成JDBC核心处理流程,比如SQL语句的创建、执行,而把SQL语句的生成以及查询结果的提取工作留给我们的应用代码。它可以完成SQL查询、
6、更新以及调用存储过程,可以对ResultSet进行遍历并加以提取。它还可以捕获JDBC异常并将其转换成org.springframework.dao包中定义的,通用的,信息更丰富的异常。,update,/ 所有添,删,改的方法都可以用jdbctemp.update()方法 public void addStu(Stu stu) String sql = insert into stu values(?,?,?); Object obj = new Object stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().get
7、Time() ; /可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值 jdbctemp.update(sql, obj); ,query,/查询方式1 public List getAllStu(int id) String sql=select s_id,s_name,s_sex,s_brith from stu where s_id?; Object obj=new Objectid; /使用内部类 List list=jdbctemp.query(sql,obj,new RowMapper() public Object mapRow(ResultSet arg0,
8、 int arg1) throws SQLException Stu stu=new Stu(); if(arg0!=null) stu.setSid(arg0.getInt(s_id); stu.setSname(arg0.getString(s_name); stu.setSsex(arg0.getString(s_sex); stu.setSbrith(arg0.getDate(s_brith); return stu; ); return list; ,queryForObject,/查询方式2 (查询一个对象) public Stu getOneStu(int id) String
9、sql=select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?; Object obj=new Objectid; Object stu=jdbctemp.queryForObject(sql, obj,new BeanPropertyRowMapper(Stu.class); /可以不用内部类,但是类的属性字段名称要数据库中的字段名称一样或者数据库字段名为s_id类的名称为SId, /如果你没有遵守这个规范则可以在select语句后面给数据库字段名取别名 /上面的查询也可
10、以这种方式 return (Stu)stu; ,queryForObject,/查询方式3(查询一个字段) public String getStuName(int sid) String sql=select s_name as sname from stu where s_id=?; Object obj=new Objectsid; Object stuname=jdbctemp.queryForObject(sql, obj, String.class); /String.class即是指明一下结果的类型 return (String) stuname; ,queryForInt,/查
11、询方法4 public int count() String sql=select count(*) from stu; int m=jdbctemp.queryForInt(sql); return m; ,queryForMap,/查询方法5 查询结果返回的是map,map中的key为select中的列名(若有别名是是别名)value是该列所对应的值 public Map getStuinMap(int sid) String sql=select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu wh
12、ere s_id=?; Object obj=new Objectsid; return jdbctemp.queryForMap(sql, obj); ,NamedParameterJdbcTemplate简介,NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。 public Object queryForObject(String sql,
13、Map paramMap, RowMapper rowMapper) public Object queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper) SqlParameterSource的两个主要实现: 1.MapSqlParameterSource和 2.BeanPropertySqlParameterSource NamedParameterJdbcTemplate提供了命名参数,用:x代替了? * NamedParameterJdbcTemplate传参数可以用map或者SqlPa
14、rameterSource * 用map的好处是:x,x的值可以自由取,但是所有参数的值都必须要放到map中去,其中的key为:后面的名称,value是你传的值 * 用SqlParameterSource的好处是不用一个个的赋值,但是:x中的x的值必须和对象的属性名称一样,Update,public void updStu(Stu stu) String sql=update stu set s_name=:sname,s_sex=:ssex,s_brith=:sbrith where s_id=:sid; SqlParameterSource ps=new BeanPropertySqlPa
15、rameterSource(stu); namedjdbctemp.update(sql, ps); public void delStu(int sid) String sql=delete stu where s_id=:id; Map map=new HashMap(); map.put(id, sid); namedjdbctemp.update(sql, map); ,getJdbcOperations().query,public List getAllStu() String sql=select s_id as sid,s_name as sname,s_sex as ssex
16、,s_brith as sbrith from stu; List list=namedjdbctemp.getJdbcOperations().query(sql,new BeanPropertyRowMapper(Stu.class); return list; ,query,public List getAllStu(Stu stu) String sql=select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=:sid; SqlParameterSource ps=ne
17、w BeanPropertySqlParameterSource(stu); return namedjdbctemp.query(sql, ps, new BeanPropertyRowMapper(Stu.class); ,queryForObject,public Stu getOneStu(Stu stu) String sql=select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=:sid; SqlParameterSource ps=new BeanPropertySqlParameterSource(stu); return (Stu)namedjdbctemp.queryForObject(sql,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年混凝土添加剂合作协议书
- 电商直播基地主播合作协议模板
- 2025年发动机基本件:飞轮合作协议书
- 2025年地震电磁辐射观测仪合作协议书
- 2024-2025学年广东省广州市番禹区四年级(上)期末数学试卷
- 2024-2025学年统编版道德与法治七年级上册全册知识点梳理
- 2023--2024学年湖北省武汉市武昌区九年级上学期元调物理试题
- 2025年个人机械加工合同(4篇)
- 血液净化中心护理应急指引理论考核试题
- 2025年九年级班主任个人德育工作年度小结(三篇)
- 9这点挫折算什么(课件)-五年级上册生命与健康
- 价格监督检查知识培训课件
- 中国心理卫生协会家庭教育指导师参考试题库及答案
- 智能广告投放技术方案
- 中国移动各省公司组织架构
- 知识产权保护执法
- 手术安全管理之手术部位标识安全
- 2022年版煤矿安全规程
- 数字化时代的酒店员工培训:技能升级
- 《学术规范和论文写作》课件全套 第1-10章 知:认识研究与论文写作 - 引文规范
- 带式输送机滚筒出厂检验规范
评论
0/150
提交评论