扑克迷教练 当前位置:首页>扑克迷教练>正文

扑克迷教练

发布时间:2018-11-19

原标题:Spring之DAO一

如遇【线上娱乐站】不能自动打开,请复制 http://da8.us 到浏览器,注册自动送8-88试 ̶̶̶̶̶̶̶̶̶̶玩 ̷̷̷̷̷̷̷̷̷̷金。体验各种类的线上PT/DT/MG/PNG ̶̶̶̶̶̶̶̶̶̶老 ̷̷̷̷̷̷̷̷̷̷虎 ̷̷̷̷̷̷̷̷̷̷机、 ̷̷̷̷̷̷̷̷̷̷真* ̷̷̷̷̷̷̷̷̷̷人* ̶̶̶̶̶̶̶̶̶̶百* ̶̶̶̶̶̶̶̶̶̶家 ̷̷̷̷̷̷̷̷̷̷*乐*游戏等免费试玩、优惠活动,7*24小时专业服务

李庆安靠坐在一只橱柜上,胸腹里十分难受,仿佛身子虚脱了一般,浑身没有一点力气。

大连娱网棋牌游戏大厅

“呼~我也不想拐弯抹角,在座有三位都是老面孔了,而两位又是年轻人相信都是会更加的果断,不管是解决哪一边的事情我想最快捷的方法莫过于五大隐村联合起来组成一个忍者联军,起码这个忍者联军在晓组织和刘皓解决之前是一体的,你们觉得如何。“自来也的魄力明显很强,也顺着雷影的话直接提出了这个方案。
不过三合,白玉手掌一指弹在通风腰间,将通风弹出几十丈远,通风折了几个跟斗,身形踉跄而后终于稳住,显然是受了伤。

他这才明白父亲的深意,大唐的强大永远不是南诏所得比拟,南诏绝不可能和大唐平起平坐,唐军的锐利仿佛一盆冷水将狂躁的头脑泼冷了,现在,南诏将面临灭国之灾。

前面博客把bean、aop简单了解了一下,今天主要是了解Spring中DAO层,如果使用传统的JDBC时需要创建连接、打开、执行sql、关闭连接这一系列的步骤,Spring框架对JDBC进行了封装,我们只需使用封装好的JdbcTemplate执行sql语句。主要还是继承了Spring提供的JdbcDaoSupport。下面主要是用来演示怎么使用JdbcDaoSupport。

一、创建Model

这里创建一个User类,作为model。

package Cuiyw.Spring.Model;

public class User {
    private int userId;
    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    private String name;
    
    
    private float money;
    public float getMoney() {
        return money;
    }
    public void setMoney(float money) {
        this.money = money;
    }

}
View Code

二、创建DAO接口并实现接口

1.这里创建IUserDAO接口,声明了两个方法,一个是获取所有的User,一个是新增User。

package Cuiyw.Spring.IDao;

import java.util.*;

import Cuiyw.Spring.Model.User;

public interface IUserDAO {
    
    public List<User>QueryAllUser();
    
    public Boolean AddUser(String name,float money);
    
}
View Code

2.这里实现接口IUserDAO,并且继承JdbcDaoSupport。在下面的代码中能找到getJdbcTemplate(),其实我们右键选择Open declaration 时可以定位到抽象类JdbcDaoSupport,JdbcDaoSupport里面有一个JdbcTemplate属性,而且还有get或set JDBC DataSource,然后选中JdbcTemplate,再Open declaration,发现JdbcTemplate的构造函数需要DataSource,JdbcDaoSupport提供JdbcTemplate对象,并维护着JdbcTemplate对象需要的DataSource。

package Cuiyw.Spring.Dao;

import java.util.*;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

import Cuiyw.Spring.IDao.IUserDAO;
import Cuiyw.Spring.Model.User;


public class UserDAO extends JdbcDaoSupport implements IUserDAO {

    public List<User> QueryAllUser() {
        
        String sql="select id,name,money from tb_user";
        List<Map<String,Object>> list=getJdbcTemplate().queryForList(sql);
        List<User> userList=new ArrayList<User>();
        for(Map<String,Object> row:list)
        {
            User user=new User();
            user.setUserId((Integer)row.get("id"));
            user.setName((String)row.get("name"));
            user.setMoney((Float)row.get("money"));
            userList.add(user);
        }
        return userList;
        
    }

    public Boolean AddUser(String name,float money) {
        String sql="insert into tb_user (name,money) values (?,?)";
        int row=getJdbcTemplate().update(sql, new Object[]{name,money});
        if(row>0)
        {
            return true;
        }
        return false;
    }

}
View Code
    public JdbcTemplate(DataSource dataSource) {
        setDataSource(dataSource);
        afterPropertiesSet();
    }
View Code

3.上下文配置

上面DataSource从哪里来呢?就需要在上下文中配置。首先配置DataSource,然后由于UserDAO继承了抽象类JdbcDaoSupport,所以也需要设置属性dataSource

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"> 
          <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
          <value>jdbc:mysql://localhost:3306/spring</value>
  </property>
  <property name="username">
          <value>root</value>
  </property>
  <property name="password">
      <value>123456</value>
  </property> 
</bean> 
<bean id="userDao" class="Cuiyw.Spring.Dao.UserDAO" depends-on="dataSource">
    <property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
View Code

4.Mysql新增数据库和表

上面2中UserDAO执行了两个sql,涉及到表tb_user,字段id、name、money。在3上下文配置mysql时指定了数据库名spring。所以按照上面的创建。

5.实验

        ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"ApplicationContext.xml"});
        BeanFactory factory=context;
        IUserDAO userDao=(IUserDAO)factory.getBean("userDao");
        userDao.AddUser("cuiywA",888);
    
        userDao.AddUser("cuiywB",666);
        List<User> list=userDao.QueryAllUser(); 
        for(User u:list)
        {
            System.out.println("name:"+u.getName()+" money: "+u.getMoney());
        }
View Code

6.错误

在实现上面的步骤时报了好几个错误,有因为我疏忽的,还有数据类型和数据库不一直的,最重要的两个我这里也记录了下来。

1.下面的错误是由于缺少commons-dbcp.jar、commons-pool.jar导致的

Cannot find class [org.apache.commons.dbcp.BasicDataSource] for bean with name "dataSource" defined in class path resource [ApplicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

2.还有就是我在UserDAO中继承了JdbcDaoSupport,但就是没自动提示要引入的包,这个第一次没经验,百度了才指定需要引入spring-jdbc.jar.

3.忘记引入mysql驱动

Failed to obtain JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class "com.mysql.jdbc.Driver"

上面的错误都是没有引入jar包,这里把pom.xml也放进来,留着以后好用。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>Cuiyw</groupId>
  <artifactId>SpringAop</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>SpringAop</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <spring.version>5.0.0.RELEASE</spring.version>
  </properties>

  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
       
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
            <!-- https://mvnrepository.com/artifact/aspectj/aspectjweaver -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.5.4</version>
        </dependency>
            <!-- https://mvnrepository.com/artifact/aspectj/aspectjrt -->
        <dependency>
            <groupId>aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.5.4</version>
        </dependency>
    
  </dependencies>
</project>
View Code

 

编辑:陵秉文

发布时间:2018-11-19 15:18:22

当前文章:http://www.nrycenter.cn/2017/1021/601291829.html

德扑圈微信官网 德州扑克bb是什么意思 德州扑克德扑圈吧 德州扑克游戏在线玩 欢乐斗牛牛 火凤凰翻牌机app 吉祥棋牌室下载 金贝棋牌有电脑版吗

18134 68462 95454 30786 47833 5760587760 68459 25064

责任编辑:辛石马

随机推荐