使用Java连接mysql数据库,并实现增删改,查
Java连接数据库的步骤
1.导入驱动包,加载相应的驱动类
2.与数据库建立连接
3.发送sql,执行(增删改,查)
4.处理结果集(只有查询的时候才用到结果集)
1.导入驱动包,加载相应的驱动类
这里找到你下载的mysql安装包下的lib文件夹,找到上图这个jar包,然后再ecilpse中新建一个Java项目JDBCConnection
再将刚才的jar包复制到这个项目下
邮件导入的jar包
这样就完成了,驱动包的导入。
2.加载相应的驱动类
//a.导入驱动包,加载相应的驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
2.与数据库建立连接
//b.与数据库建立连接
connection=DriverManager.getConnection(url,name,password);
DriverManager:管理数据库驱动类,通过getconnection() 方法获取管理数据库的对象connection
3.发送sql语句,并执行
现在我的userdb数据库中的user表中只有这两条数据,执行下面这条语句
String sql="insert into user valus(3,'王五','666')"; //将这一表项加入到user表中
在user中添加上这一表象(先上效果图)
pstmt=connection.prepareStatement(sql);
通过connection对象获取操作数据的队象connection,再将sql字符串传给prepareStatement()预编译
int count= pstmt.executeUpdate(); //返回一个整数值,代表影响的行数
再将其执行,返回的是一个int类型的值,表示影响数据库的行数
下面时删除,修改的代码(只需要将sql语句替换即可)
删除:
String sql2="delete from user where username='张三'"; //删除张三这一表项
String sql3="update user set password='123'where username='李四'"; //将李四对应的password值改为123
name="root"是本人数据库名,password="123456"是本人的密码,(请使用是修改成自己的数据库名和密码)
private static String url="jdbc:mysql://localhost:3306/userdb";
这里最后的userdb需要修改成自己要访问的数据库名
附上全片代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.mysql.cj.xdevapi.Result;
public class CSDNMysql {
private static String url="jdbc:mysql://localhost:3306/userdb";
private static String name="root";
private static String password="123456";
public static void update()
{
Connection connection=null;
//Result rs=null;
PreparedStatement pstmt=null;
try {
//a.导入驱动包,加载相应的驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
//b.与数据库建立连接
connection=DriverManager.getConnection(url,name,password);
//c.发送sql语句,并执行
String sql="insert into user values(3,'王五','666')"; //将这一表项加入到user表中
String sql2="delete from user where username='张三'"; //删除张三这一表项
String sql3="update user set password='123'where username='李四'"; //将李四对应的password值改为123
pstmt=connection.prepareStatement(sql3);
int count= pstmt.executeUpdate(); //返回一个整数值,代表影响的行数
if(count>0)
{
System.out.println("操作成功!!!");
}
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}catch(SQLException e)
{
e.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}finally {
try {
if(pstmt!=null) pstmt.close(); //先开后关
if(connection!=null) connection.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
public static void main(String []args)
{
update();
}
}
4.查询操作(需要用到ResultSet结果集)
String sql="select * from user"; //查询user表的全部元素
pstmt=connection.prepareStatement(sql);
rs = pstmt.executeQuery(); //返回一个整数值,代表影响的行数
只是将这两行的代码修改,然后下面去出数据
while(rs.next())
{
int id =rs.getInt("iduser"); //获取表中的iduser
String username=rs.getString("username"); //获取username
String password=rs.getString("password"); //获取password
}
因为ResultSet里有getXxx();方法,可以获取结果集中的值,但是结果集中的值,不是同一数据类型,所以需要利用循环将其输出
现在先看一下数据库里的数据
下面运行程序:
附上代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.cj.xdevapi.Result;
public class CSDNConnectionQuery {
private static String url="jdbc:mysql://localhost:3306/userdb";
private static String name="root";
private static String password="123456";
public static void query()
{
Connection connection=null;
ResultSet rs=null;
PreparedStatement pstmt=null;
try {
//a.导入驱动包,加载相应的驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
//b.与数据库建立连接
connection=DriverManager.getConnection(url,name,password);
//c.发送sql语句,并执行
String sql="select * from user"; //查询user表的全部元素
pstmt=connection.prepareStatement(sql);
rs = pstmt.executeQuery(); //返回一个整数值,代表影响的行数
while(rs.next())
{
int id =rs.getInt("iduser"); //获取表中的iduser
String username=rs.getString("username"); //获取username
String password1=rs.getString("password"); //获取password
//将其输出
System.out.println(id+" "+username+" "+password1);
}
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}catch(SQLException e)
{
e.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}finally {
try {
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close(); //先开后关
if(connection!=null) connection.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
public static void main(String []args)
{
query();
}
}