spring07 JDBC

1.创建对应的数据库

2.在MyEclipse中创建项目  引入需要的jar包

3.创建数据访问层

public interface StudentDao {

    //新增学生
    int addStudent(Student student);
    //删除学生
    int delStudent(Student student);
    //修改学生
    int updateStudent(Student student);

    //查询所有
    List<Student> findStudents();
    //查询所有的学生姓名
    List<String> findNames();
}

StudentDao

public class StudentDaoImpl extends JdbcDaoSupport  implements StudentDao {

    @Override//新增
    public int addStudent(Student student) {
        String sql="insert into  student(age,name) values(?,?)";
        return getJdbcTemplate().update(sql,student.getAge(),student.getName());
    }
    @Override//删除
    public int delStudent(Student student) {
        String sql="delete  from  student where id=?";
        return getJdbcTemplate().update(sql,student.getId());
    }

    @Override//修改
    public int updateStudent(Student student) {
        String sql="update   student   set age=?,name=? where id=?";
        return getJdbcTemplate().update(sql,student.getAge(),student.getName(),student.getId());
    }

    //查询所有的学生信息
    @Override
    public List<Student> findStudents() {
        String sql="select * from student";
        //需要配置  行 映射器    因为 表中有3列  spring期望值是一列
        return getJdbcTemplate().query(sql, new StudentRowMapper());
    }
    //查询所有的姓名
    @Override
    public List<String> findNames() {
        String sql="select name from student";
        return getJdbcTemplate().queryForList(sql, String.class);
    }

}

StudentDaoImpl

public class StudentRowMapper implements RowMapper<Student> { //行映射器

    //这里的ResultSet指的是单行数据  并不是 所有行的结果集
    @Override
    public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
    Student student=new Student();
    student.setId(rs.getInt("id"));
    student.setAge(rs.getInt("age"));
    student.setName(rs.getString("name"));
        return student;
    }

}

StudentRowMapper

4.创建业务逻辑层

public interface StudentService {

        //新增学生
        void addStudent(Student student);
        //删除学生
        void delStudent(Student student);
        //修改学生
        void updateStudent(Student student);

        //查询所有
        List<Student> findStudents();
        //查询所有的学生姓名
        List<String> findNames();

}

StudentService

public class StudentServiceImpl implements StudentService {

    private StudentDao dao;

    // 新增
    @Override
    public void addStudent(Student student) {
        int num = dao.addStudent(student);
        if (num > 0) {
            System.out.println("新增成功");
        } else {
            System.out.println("新增失败");
        }
    }

    @Override
    // 删除
    public void delStudent(Student student) {
        int num = dao.delStudent(student);
        if (num > 0) {
            System.out.println("删除成功");
        } else {
            System.out.println("删除失败");
        }
    }

    @Override
    // 修改
    public void updateStudent(Student student) {
        int num = dao.updateStudent(student);
        if (num > 0) {
            System.out.println("修改成功");
        } else {
            System.out.println("修改失败");
        }
    }

    @Override
    // 查询所有的学生信息
    public List<Student> findStudents() {
        return dao.findStudents();
    }

    @Override
    // 查询所有的学生姓名
    public List<String> findNames() {
        return dao.findNames();
    }

    public StudentDao getDao() {
        return dao;
    }

        //DI 依赖注入
    public void setDao(StudentDao dao) {
        this.dao = dao;
    }

}

StudentServiceImpl

5.书写配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    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/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!-- 配置数据源 01.spring的默认数据源 -->
    <!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
        name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
        <property name="password" value="wym"/> </bean> -->

    <!-- 配置数据源 02.dbcp数据源 -->
    <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property
        name="url" value="jdbc:mysql:///news"/> <property name="username" value="wym"/>
        <property name="password" value="wym"/> </bean> -->

    <!-- 配置数据源 03.c3p0数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${driverClass}" />
        <property name="jdbcUrl" value="${jdbcUrl}" />
        <property name="user" value="${user}" />
        <property name="password" value="${password}" />
    </bean>

    <!-- 01. 使用配置文件 加载 数据库需要的4要素 经常使用 -->
    <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- 02.使用配置文件 加载 数据库需要的4要素 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties"></property> </bean> -->

    <!-- 配置模板 -->
    <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!--配置dao -->
    <bean id="dao" class="cn.bdqn.dao.impl.StudentDaoImpl">
        <property name="jdbcTemplate" ref="template"></property>
    </bean>

    <!-- 配置service -->
    <bean id="service" class="cn.bdqn.service.impl.StudentServiceImpl">
        <property name="dao" ref="dao"></property>
    </bean>

</beans>

applicationContext.xml

jdbc.properties文件

6.书写测试类

public class StudentTest {

    @Test
    // 新增
    public void addTest() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        StudentService service = (StudentService) context.getBean("service");
        service.addStudent(new Student(5655, "小白5"));
    }

    @Test
    // 删除
    public void delTest() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        StudentService service = (StudentService) context.getBean("service");
        Student student = new Student();
        student.setId(2);
        service.delStudent(student);
    }

    @Test
    // 修改
    public void updateTest() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        StudentService service = (StudentService) context.getBean("service");
        Student student = new Student();
        student.setId(1);
        student.setName("xiao");
        student.setAge(1000);
        service.updateStudent(student);
    }

    @Test
    // 查询学生姓名
    public void findNames() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        StudentService service = (StudentService) context.getBean("service");
        List<String> names = service.findNames();
        for (String string : names) {
            System.out.println(string);
        }
    }

    @Test
    // 查询学生
    public void findStudents() {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        StudentService service = (StudentService) context.getBean("service");
        List<Student> list = service.findStudents();
        for (Student student : list) {
            System.out.println(student);
        }
    }

}

测试代码

时间: 2024-10-09 04:59:39

spring07 JDBC的相关文章

jdbc的简单使用

1.加载驱动(mysql的驱动是com.mysql.jdbc.Driver,SqlServer的驱动是 com.microsoft.sqlserver.jdbc.SQLServerDriver) 2.加载数据库的连接(url, username,password) 3.编写sql语句(String sql="select * from grade  where gradeName = ?";) 4.遍历查询结果 [while (resultSet.next()) {   System.

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABLE 2 ( 3 gid NUMBER not null, 4 gname VARCHAR2(90), 5 gdetails CLOB, 6 gpicture VARCHAR2(100), 7 gprice NUMBER, 8 gleixing NUMBER, 9 gpinpai VARCHAR2(20) 10 ) 11 tablespace

jdbc驱动jar导入eclipse

在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java build path,右边选择libraries 3.选择add External jars 4.选择jar包的按照路径下的确定后就行了. Java连接MySQL的最新驱动包下载地址 http://www.mysql.com/downloads/connector/j 有两种方法导入jar包,第一种

JDBC

Java语言访问数据库的一种规范,是一套API JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架.接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaE

java链接MySQL数据库时使用com.mysql.jdbc.Connection的包会出红线问题

package com.swift; //这里导入的包是java.sql.Connection而不是com.mysql.jdbc.Connection import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class TestJDBC { public static void main(String[] args) { try { Class.forName(

Tomcat JDBC Pool使用说明

Maven依赖 <dependency>   <groupId>org.apache.tomcat</groupId>   <artifactId>tomcat-jdbc</artifactId>   <version>8.5.9</version> </dependency> 最新版本为9.0,推荐使用8.5.9稳定版 常用配置 连接池配置项很多,下面只列出了推荐配置,项目组可根据自身情况进行增减 <b

tomcat启动过程报the JDBC Driver has been forcibly unregistered问题的修复过程

最近两天在整理关于flume的总结文档,没有启动过tomcat.昨天晚上部署启动,发现报了如题的错误,全文如下: 严重: The web application [/oa-deploy] registered the JBDC driver [com.microsoft.sqlserver.jdbc.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a mem

使用JDBC如何提高访问数据库的性能?

1. 使用数据连接池(Connection Pool), 避免使用DriverManager.getConnection. 2. 合理的配置数据连接池参数,设置数据连接池的初始大小,最大连接数,连接超时时间等. 3. 选择合适的事务等级,按照不同的数据库操作类型选择不同的事务等级. 4. 及时关闭Connection,不关闭的话会严重影响系统的性能,甚至造成系统罢工. 5. 优化Statement 1) 选择合适的Statement, 根据不同的数据库操作选择Statement, Prepare

回滚的意义---JDBC事务回滚探究

JDBC手动事务提交回滚的常见写法一直是rollback写在commit的catch之后: try{ conn.setAutoCommit(false); ps.executeUpdate(); ps.executeUpdate(); conn.commit(); }catch(Exception e){ conn.rollback(); } 但是,这种回滚是没有意义的: 一旦commit前出错, 就不提交了, 回滚无用 一旦commit了, 说明没错, 不用回滚 找到一篇和我观点相同的文章: