在数据库的使用中最为主要的就是对数据库的增、删、查、改操作,MySQL数据库作为关系型数据库的一种,其数据库管理系统是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
采用java语言对数据库操作是在做项目的过程中最为基本的技能,java在操作数据库的过程相对比较简单,整个流程大致分为以下几个部分:
1. 加载数据库驱动程序
2. 建立数据库连接
3. 数据库的基本操作
4. 关闭数据库连接
数据库的查询操作
- 查询全部记录 : select * from <tablename>
- 查询指令的语法格式为 : select <*/filed> select from <tablename> where <field>=<key>;
- 模糊查询(like为例) : select <*/field> form <tablename> where <field> like 'value%';
数据库的插入操作
- 插入全部字段:insert into <tablename> values (value1,value2,value3);#表格中只有三个字段
- 插入部分字段:insert into <tablename> (field1,field2,field3..) values (value1,value2,value3..);
数据库的删除操作
- 删除某一条或者某一类记录:delete from <tablename> where <condition>
数据库的更新操作
- 设置某一条或多条特定字段的值:update <tablename> set <field>=<value> where <condition>;
此外有时我们可能在起初创建表格的时候由于没有考虑的那么周全,我们在使用中发现需要新添加某一个或者多个字段,那么我们可以使用alert命令来在特定位置添加上我们需要添加的字段。
- 在指定的列后添加特定字段:alter table <tablename> add column <colname> <coltype>;
java自定义数据库类的使用
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 根据所给出的用户名和密码,连接本地数据库
* 数据库名称 : study
* 数据表名称 : emp
* 端口号 : 3306
* 用户名 : root
* 密码 : root
*/
public class MySQLDataBase {
//声明connection对象,存储连接数据库的引用
private Connection con = null;;
//存储用户名和密码信息
private String username = null;
private String password = null;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public Connection getCon() {
return con;
}
/**
* 创建数据库连接
* @param username
* @param password
* @return
*/
public Connection createConnector(String username,String password)
{
Connection conn = null;
//数据库连接驱动名:针对不同的数据库,驱动名称不同,但是同一种类型的数据库改字符串相同
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库study,useSSL用来指明是否需要使用SSL协议,如果不指明将会报错
String url = "jdbc:mysql://localhost:3306/study?useSSL=true";
try
{
//加载驱动程序
Class.forName(driver);
//连接数据库
conn = DriverManager.getConnection(url, username, password);
//检查数据库连接是否成功
if(!conn.isClosed())
{
System.out.println("Successed connecting to the Database!");
//存储当前连接的用户的用户名和密码
this.username = username;
this.password = password;
this.con = conn;
}
}catch (ClassNotFoundException e) {
System.out.println("Sorry, can't find the Driver!");
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
/**
* 断开数据库连接
* @param conn
* @return
*/
public boolean close(Connection conn)
{
try {
if(!conn.isClosed())
{
conn.close();
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
/**
* 执行数据库操作语句
* @param con
* @param query
*/
public void query(Connection conn,String query)
{
//创建Statement对象,用来执行SQL语句
Statement statement;
try {
statement = conn.createStatement();
//需要执行的数据库操作语句
String sql = query;
//执行数据库操作语句并返回结果
ResultSet rs = statement.executeQuery(sql);
System.out.println("-------------------");
System.out.println("---执行查询结果如下所示---");
System.out.println("-------------------");
System.out.println("姓名"+"\t"+"年龄"+"\t"+"工资");
String name = null;
int age,sal;
//打印查询结果
while(rs.next())
{
name = rs.getString("ename");
age = rs.getInt("age");
sal = rs.getInt("sal");
System.out.println(name + "\t" + age + "\t" + sal);
}
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 增加一条数据到指定数据库的指定表中
* @param conn
* @param command
*/
public boolean insert(Connection conn, String command)
{
Statement statement;
try {
statement = conn.createStatement();
String sql = command;
/**
* Statement接口中的excuteUpdate()方法执行给定的
* SQL语句,该语句可以是INSERT,UPDATE,DELETE语句
*/
statement.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean delete(Connection conn, String command)
{
Statement statement;
try {
statement = conn.createStatement();
String sql = command;
statement.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**
* 更新数据库操作
* @param conn
* @param command
* @return
*/
public boolean updates(Connection conn, String command)
{
Statement statement;
try {
statement = con.createStatement();
String sql = command;
statement.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
java自定义数据库类的使用
import java.sql.Connection;
public class app {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("Starting to connecting database ...");
long startTime = System.currentTimeMillis();
MySQLDataBase database = new MySQLDataBase();
Connection con = database.createConnector("root", "root");
//查找
database.query(con, "select * from emp");
//插入
database.insert(con, "insert into emp(ename,age,brith,hiredate,sal,deptno) values('Lina',19,'1998-01-01','2015-10-10',5000,3)");
database.query(con, "select * from emp");
//修改
database.updates(con, "update emp set sal=8000 where ename='Lina'");
database.query(con, "select * from emp");
//删除
database.delete(con, "delete from emp where ename='Lina'");
database.query(con, "select * from emp");
if(database.close(con)){
System.out.println("Data Base connection has been closed!");
}
long endTime = System.currentTimeMillis();
System.out.println("Time consume : "+(endTime-startTime) + " ms");
}
运行结果:
Starting to connecting database ...
Successed connecting to the Database!
-------------------
---执行查询结果如下所示---
-------------------
姓名 年龄 工资
Marry 20 10000
Tom 21 6000
Jhon 31 0
Anna 23 8000
Lucy 18 5000
-------------------
---执行查询结果如下所示---
-------------------
姓名 年龄 工资
Marry 20 10000
Tom 21 6000
Jhon 31 0
Anna 23 8000
Lucy 18 5000
Lina 19 5000
-------------------
---执行查询结果如下所示---
-------------------
姓名 年龄 工资
Marry 20 10000
Tom 21 6000
Jhon 31 0
Anna 23 8000
Lucy 18 5000
Lina 19 8000
-------------------
---执行查询结果如下所示---
-------------------
姓名 年龄 工资
Marry 20 10000
Tom 21 6000
Jhon 31 0
Anna 23 8000
Lucy 18 5000
Data Base connection has been closed!
Time consume : 441 ms
转载于其他博主