码迷,mamicode.com
首页 > 数据库 > 详细

jdbc访问数据库

时间:2017-04-18 20:16:10      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:jdbc访问数据库

1.创建Maven项目,项目名称springdata,目录结构如图所示

技术分享


2.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>com.mycompany</groupId>
  <artifactId>springdata</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build/>
  
  <dependencies>
  	<!-- mysql driver -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.38</version>
	</dependency>
  
	<!-- junit -->
	<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.11</version>
	</dependency>
  </dependencies>
	
</project>


3.在src/main/java下创建实体类Student,包名(com.mycompany.domain),目录结构如下

技术分享


4.实体类Student的内容如下

package com.mycompany.domain;

/**
 * 学生类
 * @author Administrator
 *
 */
public class Student {
	private int sid;
	private String name;
	
	public Student() {
		super();
	}
	public Student(String name) {
		super();
		this.name = name;
	}
	public Student(int sid, String name) {
		super();
		this.sid = sid;
		this.name = name;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "[sid="+sid+",name="+name+"]";
	}
}


5.在src/main/java下创建jdbc工具类JDBCUtil,包名(com.mycompany.utl),目录如图所示

技术分享


6.工具类JDBCUtil的内容如下

package com.mycompany.util;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * JDBC工具类
 * @author Administrator
 *
 */
public class JDBCUtil {
	
	/**
	 * 获取Connection
	 * @return 返回JDBC的Connection对象
	 * @throws ClassNotFoundException 
	 */
	public static Connection getConnection() throws Exception{
		//加载属性文件
		InputStream inputStream = JDBCUtil.class.getClassLoader()
		.getResourceAsStream("db.properties");
		Properties properties = new Properties();
		properties.load(inputStream);
		
		String url = properties.getProperty("jdbc.url");
		String user = properties.getProperty("jdbc.user");
		String password = properties.getProperty("jdbc.password");
		String driverClass = properties.getProperty("jdbc.driverClass");
		
		Class.forName(driverClass);
		Connection connection = DriverManager.getConnection(url, user, password);
		
		
		return connection;
	}
	
	/**
	 * 释放资讯
	 * @param resultSet
	 * @param statement
	 * @param connection
	 */
	public static void release(ResultSet resultSet,Statement statement,Connection connection){
		if (resultSet != null) {
			try {
				resultSet.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if (statement != null) {
			try {
				statement.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if (connection != null) {
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}


7.在src/main/java下创建接口StudentDao,包名(com.mycompany.dao),目录结构如图所示

技术分享


8.接口StudentDao的内容如下

package com.mycompany.dao;

import java.util.List;

import com.mycompany.domain.Student;

/**
 * 学生DAO接口
 * @author Administrator
 *
 */
public interface StudentDao {
	/**
	 * 查询所有学生
	 * @return 学生列表
	 */
	public List<Student> query();
	
	/**
	 * 添加学生
	 * @param student
	 */
	public void save(Student student);
}


9.在src/main/java下创建接口StudentDao的实现类StudentDaoImpl,包名(com.mycompany.dao.impl),目录如图所示

技术分享


10.StudentDaoImpl实现类的内容如下

package com.mycompany.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.mycompany.dao.StudentDao;
import com.mycompany.domain.Student;
import com.mycompany.util.JDBCUtil;

public class StudentDaoImpl implements StudentDao {

	public List<Student> query() {
		Connection connection = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;
		List<Student> students = new ArrayList<Student>();
		String sql = "select * from student";
		try {
			connection = JDBCUtil.getConnection();
			preparedStatement = connection.prepareStatement(sql);
			resultSet = preparedStatement.executeQuery();
			
			while(resultSet.next()){
				int sid = resultSet.getInt("sid");
				String name = resultSet.getString("name");
				Student student = new Student(sid,name);
				students.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			JDBCUtil.release(resultSet, preparedStatement, connection);
		}
		return students;
	}

	public void save(Student student) {
		Connection connection = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;
		List<Student> students = new ArrayList<Student>();
		String sql = "insert into student(name) values(?)";
		try {
			connection = JDBCUtil.getConnection();
			preparedStatement = connection.prepareStatement(sql);
			preparedStatement.setString(1, student.getName());
			preparedStatement.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			JDBCUtil.release(resultSet, preparedStatement, connection);
		}
	}

}


11.在src/main/resources下创建db.properties属性文件,存储数据库连接信息

技术分享


12.db.properties属性文件的内容如下

jdbc.url=jdbc:mysql:///test
jdbc.user=root
jdbc.password=
jdbc.driverClass=com.mysql.jdbc.Driver


13.在src/test/java下创建测试类StudentDaoImplTest,包名(com.mycompany.dao.impl),目录结构如图所示

技术分享


14.测试类StudentDaoImplTest的内容如下

package com.mycompany.dao.impl;

import java.util.List;

import org.junit.Test;

import com.mycompany.dao.StudentDao;
import com.mycompany.domain.Student;

public class StudentDaoImplTest {
	@Test
	public void testQuery(){
		StudentDao studentDao = new StudentDaoImpl();
		List<Student> students = studentDao.query();
		for (Student student : students) {
			System.out.println(student);
		}
	}
	
	@Test
	public void testSave(){
		Student student = new Student("test save");
		StudentDao studentDao = new StudentDaoImpl();
		studentDao.save(student);
	}
}

技术分享

本文出自 “素颜” 博客,谢绝转载!

jdbc访问数据库

标签:jdbc访问数据库

原文地址:http://suyanzhu.blog.51cto.com/8050189/1917017

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!