您的位置:首页 > 数据库

JDBC-实现Java代码连接数据库

2017-12-21 21:25 1346 查看

JDBC

Java代码实现与服务器的连接思路:

一、导入数据库jar包

1、导入的jar包:mysql-connector-java-5.1.0-bin.jar或者更新的jar包

二、通过反射链接JDBC,链接JDBC驱动

1、获取JDBC引擎:Class.forName(驱动);

三、获取链接

1、DriverManager.getConnection(url,user,password);

四、实现数据库操作

1、添加数据:insert

2、删除数据:delete

3、修改数据:update

3、查询数据:selecte

JDBC及扩展

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

目录

[TOC]
来生成目录:

JDBC
JDBC及扩展
目录

建立数据库

静态包

dao包
1BaseDaojava

2DeptDaojava

impl包
1DeptImpljava

entity包
1Deptjava

utils包
1DeptImpljava

建立数据库

MySQL 表格语法:

语法 | 含义

——– | —

show databases | 显示库

show create database +库名 | 显示创建数据库的语句

show create table +库名 | 显示创建表的语句

use 库名 | 使用这个库

desc student | 查询表

desc student | 查询表

drop database 库名 | 删除库

drop database table 库名 | 删除表

insert into dept values(字段的值) | 添加表的值

select *from 库名t\G | 查询表的所有信息

静态包

JDBC 定义列表语法:

处理数据库层

实体类

工具类

服务类

dao包

1、BaseDao.java

package com.bdqn.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.bdqn.utils.Pr;

public class BaseDao {
public static Connection connection=null;
public static Statement statement=null;
public static ResultSet resultSet=null;
public static PreparedStatement preparedStatement=null;

public static Connection getconnection(){
try {
//通过反射链接JDBC,链接JDBC驱动
Class.forName(Pr.getProperty("driver"));
//获取链接
connection=DriverManager.getConnection(Pr.getProperty("url"), Pr.getProperty("user"), Pr.getProperty("password"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}

//增删改
public static int update(String sql,Object []objects){
int num= 0;
try {
connection=getconnection();
preparedStatement=connection.prepareStatement(sql);
if (objects!=null&&objects.length>0) {
for (int i = 0; i < objects.length; i++) {
preparedStatement.setObject((i+1), objects[i]);
}
}
num=preparedStatement.executeUpdate();
close(connection, preparedStatement, resultSet);
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
//查询数据
public static ResultSet select(String sql,Object []objects){
connection=getconnection();
ResultSet resultSet=null;
try {
preparedStatement =connection.prepareStatement(sql);
if (objects!=null&&objects.length>0) {
for (int i = 0; i < objects.length; i++) {
preparedStatement.setObject((i+1), objects[i]);
}
}
resultSet=preparedStatement.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
//关闭资源
public static void close(Connection connection,Statement statement,ResultSet resultSet){
try {
if (resultSet!=null) {
resultSet.close();
}
if (statement!=null) {
statement.close();
}
if (connection!=null) {
connection.close();

e647
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}


2、DeptDao.java

package com.bdqn.dao;

import java.util.List;

import com.bdqn.entity.Dept;

public interface DeptDao {
//添加数据
int insert(Dept dept);
//删除数据
int delete(int id);
//修改数据
int update(Dept dept);
//全查
List<Dept> Allselect();
//根据ID查
List<Dept> IdSelect(int Id);
//模糊查询
List<Dept> LikeSelect(Dept dept);
}


impl包

1、DeptImpl.java

package com.bdqn.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bdqn.dao.BaseDao;
import com.bdqn.dao.DeptDao;
import com.bdqn.entity.Dept;

public class DeptImpl extends BaseDao implements DeptDao{
//添加数据
public int insert(Dept dept) {
int num=0;
String sql="insert into dept values(?,?,?,?)";
Object [] objects={dept.getId(),dept.getName(),dept.getAge(),dept.getDmesc()};
num=BaseDao.update(sql,objects );
return num;
}
//根据id删除数据
public int delete(int id) {
int num=0;
String sql="delete from dept where id=?";
Object [] objects={id};
num=BaseDao.update(sql,objects);
return num;
}
//根据id修改名字
public int update(Dept dept) {
int num=0;
String sql="update dept set name=? where id=?";
Object [] objects={dept.getName(),dept.getId()};
num=BaseDao.update(sql,objects);
return num;
}
//全查
public List<Dept> Allselect() {
List<T> list=new ArrayList<T>();
String sql="select *from dept";
ResultSet resultSet=null;
try {
resultSet=BaseDao.select(sql, null);
while (resultSet.next()) {
list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
//根据ID查
public List<Dept> IdSelect(int Id) {
List<T> list=new ArrayList<T>();
String sql="select *from dept where id=?";
Object [] objects={Id};
ResultSet resultSet=null;
try {
resultSet=BaseDao.select(sql, objects);
while (resultSet.next()) {
list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(BaseDao.connection, BaseDao.preparedStatement, resultSet);
}
return list;

}
//模糊查询
public  List<T> LikeSelect(Dept dept) {
List<T> list=new ArrayList<T>();
String sql="select *from dept like %?%";
ResultSet resultSet=null;
Object []objects={dept.getName()};
try {
resultSet=BaseDao.select(sql, objects);
while (resultSet.next()) {
list.add(new Dept(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getInt("age"), resultSet.getString("dmesc")));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
close(BaseDao.connection, BaseDao.preparedStatement, resultSet);
}
return list;
}
}


entity包

1、Dept.java

package com.bdqn.entity;

public class  Dept {
private int  id;
private String name;
private int age;
private String dmesc;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDmesc() {
return dmesc;
}
public void setDmesc(String dmesc) {
this.dmesc = dmesc;
}
public Dept(int id, String name, int age, String dmesc) {
this.id = id;
this.name = name;
this.age = age;
this.dmesc = dmesc;
}
public Dept() {

}
@Override
public String toString() {
return "Dept [id=" + id + ", name=" + name + ", age=" + age
+ ", dmesc=" + dmesc + "]";
}

}


utils包

1、DeptImpl.java

package com.bdqn.utils;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class Pr {
private static Properties properties=new Properties();
/*静态块的作用:运行程序前先实现方法 */
static {
InputStream is=null;
try {
//使用IO流读取文件
is = new FileInputStream("database.properties");//properties文件的地址
//写入文件信息
properties.load(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (is!=null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static String getProperty(String key) {
return properties.getProperty(key);
}
}




注意:操作数据库的流程需先熟悉Properties方法是对数据库地址等配置请务必熟悉Java基础
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: