java Jdbc

Rate this post

Java 使用jdbc连接mysql数据库

首先需要下载MySQL的connector,可以直接从mysql的官网上下载

https://dev.mysql.com/downloads/connector/j/

然后解压后将其添加到自己的java项目中,最后的效果是这样的

但是这个时候jdbc的配置还没有结束,要使用驱动的话,得在类里注册使用

public Sqlconnection(){

 

JDBC_driver=”com.mysql.jdbc.Driver”;  // jdbc的驱动

DB_URL=”jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=UTF-8″;

conn=null;

}

public void openconnection()

{

try {

Class.forName(JDBC_driver); //指定连接类型

 

System.out.println(“connection is open”);

try {

conn= DriverManager.getConnection(DB_URL, “root”,””); // 获取连接,其中第二个和第三个参数根据自己数据库的用户进行更改,默认的root用户是没有密码的

System.out.println(“connection is open”);

 

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

} catch (ClassNotFoundException e) {

 

e.printStackTrace();

}

}

 

以上的代码是完整建立一个sql的连接的过程

但是需要注意的是,在使用完连接之后,需要使用conn.close()来关闭连接

 

对于所有的数据库操作来说,最基本的操作就是添删改查

 

jdbc连接数据库也不例外

1.增加数据

int result = 0;

String sql = “insert into user (name,passwd,role) value(‘”+username+”‘,'”+passwd+”‘,'”+role+”‘)”;

stmt = conn.createStatement();

int res=stmt.executeUpdate(sql);

用preparestatement 来将自己定义好的sql字符串当作sql语句执行

如果使用的是executeupdate,返回值会是被影响的行列数的个数

 

2.删除数据

int result = 0;

String sql=”delete from repair where name ='”+name+”‘”;

stmt = conn.createStatement();

int res=stmt.executeUpdate(sql);

由于在操作数据库时,需要往字符串语句里使用变量,所有的变量两边在用加号连接的时候,需要用双引号括起来,否则会出现语法错误

 

3.修改数据

stmt = conn.createStatement();

String sql =”update equipment set name ='”+changename+”‘,type='”+type+”‘,date='”+date+”‘,department='”+depart+”‘,place='”+place +”‘,money='” +money+”‘where name ='”+name+”‘”;

int i=stmt.executeUpdate(sql);

 

update语句可同时更新多列值,用逗号隔开即可

 

4.查询数据

stmt = conn.createStatement();

String sql = “SELECT name,passwd,role From test.user WHERE name='”+name+”‘”;

 

System.out.println(sql);

ResultSet rs = stmt.executeQuery(sql);

因为查询结果大多数情况下会有多个,所以用query执行后返回的是一个resultset类型的集合

通常会使用result set 类型的方法将每一列的数据提取出来,初始位置为0

while(rs.next())

{

String name = rs.getString(2);

String passwd = rs.getString(3);

String role = rs.getString(4);

data[i] = new Object[]{name,passwd,role};

i++;            }

 

在jdbc的查询使用过程中,需要注意的是,如果用rs.get对应类型()来获取参数的时候,需要注意方法返回的类型值,有的时候需要进行强制转化