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

淘客必须做网站优化培训课程

淘客必须做网站,优化培训课程,网站的百度推广怎么做,免费建官方网站spring的另一个功能模块data access对于数据库的支持 spring data access第一个helloword案例: 使用java程序实现访问配置 1.导包 2.测试案例 Testpublic void test01(){DriverManagerDataSource dataSourcenew DriverManagerDataSource();dataSource.setDriverClassName("…

spring的另一个功能模块data access对于数据库的支持

  spring data access第一个helloword案例:

 使用java程序实现访问配置

1.导包

2.测试案例

    @Testpublic void test01(){DriverManagerDataSource dataSource=new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql:///springtest");dataSource.setUsername("root");dataSource.setPassword("123");JdbcTemplate jdbcTemplate=new JdbcTemplate();jdbcTemplate.setDataSource(dataSource);String sql="insert into t_user values(1,'张三',123,'男')";jdbcTemplate.execute(sql);}

  把创建对象交给spring来控制,这样就需要在applicationContext.xml文件中配置数据访问

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:c="http://www.springframework.org/schema/c"xmlns:p="http://www.springframework.org/schema/p"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 创建数据源 --><bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><!-- 配置数据库驱动 --><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql:///springtest"></property><property name="username" value="root"></property><property name="password" value="123"></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入数据源 --><property name="dataSource" ref="driverManagerDataSource"></property></bean></beans>

  测试方法;

@RunWith(SpringJUnit4ClassRunner.class)  //整合junit4
@ContextConfiguration(locations="classpath:applicationContext.xml")//使用注解加载配置文件
public class SpringJDBCTest {@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void test01(){String sql="insert into t_user values(2,'张三',123,'男')";jdbcTemplate.execute(sql);}
}

  CRUD操作

    创建表

CREATE DATABASE springtest;
USE springtest;
CREATE TABLE t_user(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
sex VARCHAR(20)
)
INSERT INTO t_user VALUES(NULL,'tom',20,'');
INSERT INTO t_user VALUES(NULL,'fox',30,'');
INSERT INTO t_user VALUES(NULL,'tony',40,'');
创建表

    cud操作

@RunWith(SpringJUnit4ClassRunner.class)  //整合junit4
@ContextConfiguration(locations="classpath:applicationContext.xml")//使用注解加载配置文件
public class SpringJDBCTest {@Autowiredprivate JdbcTemplate jdbcTemplate;@Test    //添加数据public void insertData(){//String sql="insert into t_user values(4,'张三',123,'男')";//jdbcTemplate.execute(sql);String sql="insert into t_user values(?,?,?,?)";jdbcTemplate.update(sql,5,"王五",66,"女");}@Test    //删除数据public void deleteData(){//String sql="delete from  t_user where id=4 ";//jdbcTemplate.execute(sql);String sql="delete from  t_user where id=? ";jdbcTemplate.update(sql,5);}@Test    //修改数据public void updateData(){/*String sql="update t_user set name='李四' where id=3 ";jdbcTemplate.execute(sql);*/String sql="update t_user set name=? where id=? ";jdbcTemplate.update(sql,"jj",1);}
}
增删改

 

     查询操作

对没有封装的数据进行查询

@Test    //查询简单的一格数据public void seachOne3(){List<Map<String, Object>> list = jdbcTemplate.queryForObject("select * from t_user",new RowMapper<List<Map<String,Object>>>() {List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();@Overridepublic List<Map<String,Object>> mapRow(ResultSet rs, int rowNum) throws SQLException {System.out.println(rowNum);System.out.println("------");Map<String,Object> map=null;while(rs.next()){map=new HashMap<String,Object>();map.put("id",rs.getInt("id"));map.put("name",rs.getString("name"));map.put("age",rs.getInt("age"));map.put("sex",rs.getString("sex"));list.add(map);}return list;}});System.out.println(list);}
QueryForObject

 

@Test    //查询简单的一格数据public void seachOne3(){List<Map<String, Object>> list = jdbcTemplate.query("select * from t_user",new RowMapper<Map<String,Object>>() {List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();@Overridepublic Map<String,Object> mapRow(ResultSet rs, int rowNum) throws SQLException {Map<String,Object> map=new HashMap<String,Object>();map.put("id",rs.getInt("id"));map.put("name",rs.getString("name"));map.put("age",rs.getInt("age"));map.put("sex",rs.getString("sex"));return map;}});System.out.println(list);}
query

对封装的数据进行查询

@Test    //查询简单的一格数据public void seachOne2(){List<User> list = jdbcTemplate.queryForObject("select * from t_user",new RowMapper<List<User>>() {List<User> list=new ArrayList<User>();@Overridepublic List<User> mapRow(ResultSet rs, int rowNum) throws SQLException {//System.out.println(rs.getRow());//do {User u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAge(rs.getInt("age"));u.setSex(rs.getString("sex"));list.add(u);//} while (rs.next());return list;}});System.out.println(list);}
queryForObjcet

 

@Test    //查询简单的一格数据public void seachOne4(){List<User> list = jdbcTemplate.query("select * from t_user",new RowMapper<User>() {List<User> list=new ArrayList<User>();@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User u=new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setAge(rs.getInt("age"));u.setSex(rs.getString("sex"));return u;}});System.out.println(list);}
query

 

query 和queryForObject的区别

query是底层会对查询出来的数据进行处理,比如查询结果为空会返回为空,并不会抛异常;query的返回值会根据第二个参数来对返回进行区分

@Overridepublic void query(String sql, RowCallbackHandler rch) throws DataAccessException {   query(sql, new RowCallbackHandlerResultSetExtractor(rch));}@Overridepublic <T> List<T> query(String sql, RowMapper<T> rowMapper) throws DataAccessException { 返回值为T的集合return query(sql, new RowMapperResultSetExtractor<T>(rowMapper));}

  

@Overridepublic List<T> extractData(ResultSet rs) throws SQLException {List<T> results = (this.rowsExpected > 0 ? new ArrayList<T>(this.rowsExpected) : new ArrayList<T>());int rowNum = 0;//设置为第零行开始while (rs.next()) {//没有数据  并不会报错  只是会返回为nullresults.add(this.rowMapper.mapRow(rs, rowNum++));}return results;}

  queryForObject在查询时候如果没有查询出数据则会抛出异常  因为会对results进行判断   如果为空则会抛出异常.

public static <T> T requiredSingleResult(Collection<T> results) throws IncorrectResultSizeDataAccessException {int size = (results != null ? results.size() : 0);if (size == 0) {throw new EmptyResultDataAccessException(1);}if (results.size() > 1) {throw new IncorrectResultSizeDataAccessException(1, size);}return results.iterator().next();}

   Bean查询  类似于beanUtils对于javabean类进行数据赋值

public class BeanPropertyRowMapper<T> implements RowMapper<T>

  

@Test	//使用bean来进行查询数据public void seachBean(){List<User> list = jdbcTemplate.query("select * from t_user",new BeanPropertyRowMapper<User>(User.class));System.out.println(list);}

  

 

转载于:https://www.cnblogs.com/fjkgrbk/p/spring_JDBCTemplate.html

http://www.lbrq.cn/news/2418499.html

相关文章:

  • 成都需要网站制作百度app下载安装
  • 会员卡怎么制作百度关键词优化曝光行者seo
  • 订阅号如何做微网站网络营销实践总结报告
  • 网站常用的一种js的图片幻灯片特效代码网络服务器的功能
  • 佛山外贸网站设计线下推广活动策划方案
  • 小型手机网站建设推荐怎么查询搜索关键词
  • 免费的个人简历电子版郑州优化公司有哪些
  • 电子商务网站开发报价浙江seo外包费用
  • 学习建设网站seo网站营销公司哪家好
  • 企业网站的类型电商网站公司
  • 合肥培训网站建设宁波seo推广费用
  • 做殡葬名片的网站seo网站推广推荐
  • 哪个网站使用vue 做的王通seo
  • 邯郸网站建设服务平台百度seo关键词优化排名
  • 广州有名的网站建设公司怎么在百度发帖
  • 怎么做短链接网站百度广告推广平台
  • 地方网站怎么做的网站seo搜索引擎优化教程
  • 选择做华为网站的目的和意义seo推广平台服务
  • 武汉哪家做网站好云服务器免费
  • 如何用域名访问网站广西南宁市有公司网站设计
  • 自己做的网站图片打开慢百度指数分是什么
  • 可以做私募股权投资的网站三一crm手机客户端下载
  • 安卓应用商店下载seo综合查询是什么
  • 域名先解析后做网站如何注册属于自己的网站
  • 做网站一般要了解哪些外链网盘下载
  • 一个网站交互怎么做的北京网络seo经理
  • 计算机专业做网站运营谷歌seo排名技巧
  • 大连网站哪家做的好免费加客源
  • 怎么用ppt做网站最近一周国内热点新闻
  • 广东营销网站制作发软文
  • DL00691-基于深度学习的轴承表面缺陷目标检测含源码python
  • 零拷贝技术(Zero-Copy)
  • 网络协议(四)网络层 路由协议
  • Pytorch01:深度学习中的专业名词及基本介绍
  • ZYNQ平台深度剖析:EMMC/FLASH/SD卡性能测试与创新实践
  • 数据库练习3