您的位置:首页 > 编程语言 > Java开发

java中与mysql连接详细操作

2015-08-06 20:29 363 查看
这次我们做java与数据库的连接,参考上一篇文章。这节我们来一个实例。从student数据库中分别打印出每个对象的名字。

数据库操作

进入数据库时候可以在系统环境变量的path目录下添加mysql\bin路径。这样打开cmd就可以直接使用mysql -uroot -p进行登录操作了。

建立数据库:

create database micro;


使用数据库:

use micro;


创建表:

create table student(id int not null primary key,name varchar(20) not null);


向表中插入数据:

insert into student(id,name) value(1,"xiaoma");
insert into student(id,name) value(2,"admin");
insert into student(id,name) value(3,"master");
insert into student(id,name) value(4,"manager");


这样我们数据库中的操作就基本完成了。接下来我们来编写对应的使用数据库的部分。

实体类(javabean)student

package micro;

public class Student {
int sno;
String name;
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


Dao层

这一个class主要实现获得连接和关闭连接:

package micro;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;

public class Dao {
//访问项目的url
public static String url = "jdbc:mysql://localhost:3306/micro";
//登录数据库的用户名与密码
public static String username = "root";
public static String password = "root";

//定义数据库连接
public static Connection getConnection() throws ClassNotFoundException
{
Connection conn = null;
//对数据库的通信都要注意异常抛出
try
{
//第一步加载驱动
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e)
{
System.out.println("驱动加载出错");
e.printStackTrace();
}
try
{
//获得连接
conn = DriverManager.getConnection(url,username,password);
System.out.println("获得连接 ");
}
catch(SQLException e)
{
System.out.println("获得连接出错");
e.printStackTrace();
}
//返回连接
return conn;
}
public static void close(Connection conn,PreparedStatement preparedStatement,ResultSet rs)
{
try
{
//关闭结果集
rs.close();
}
catch(SQLException e)
{
System.out.println("不能关闭结果集");
e.printStackTrace();
}
try
{
//关闭编译通道
preparedStatement.close();
}
catch(SQLException e)
{
System.out.println("不能关闭编译");
e.printStackTrace();
}
try
{
//关闭连接
conn.close();
}
catch(SQLException e)
{
System.out.println("不能关闭连接");
e.printStackTrace();
}
}
}


使用连接的Search.class:

package micro;

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

public class Search {
//将所有查询对象封装为一个集合
public List<Student> findAll() throws ClassNotFoundException, SQLException
{
List<Student> list = null;
try
{
//定义sql语句
String sql = "select * from student";
//获得连接
Connection conn = Dao.getConnection();
//编译方式为预编译
PreparedStatement preparedStatement = conn.prepareStatement(sql);
//将执行结果放到结果集
ResultSet rs = preparedStatement.executeQuery();
//初始化集合
list = new ArrayList<Student>();
//遍历结果集将查找的字段的值放到bean的属性里
while(rs.next())
{
Student stu = new Student();
//获取结果集元组对应字段的值
stu.setSno(rs.getInt("id"));
stu.setName(rs.getString("name"));
//将对象放到list里
list.add(stu);
}
//遍历结束关闭通道
Dao.close(conn, preparedStatement, rs);
}
catch(SQLException e)
{
e.printStackTrace();
}
//返回集合
return list;
}

}


都准备好了,我们可以编写测试类了:

Test

package micro;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;

public class Test {
public static void main(String args[]) throws ClassNotFoundException, SQLException
{
Search sd = new Search();
List list;
list = sd.findAll();
Iterator it = list.iterator();
int i = 0;
while(it.hasNext())
{
i ++;
System.out.println("第"+i+"个学生的名字为"+((Student)it.next()).getName());
}
}
}


最后附上文件目录结构与运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: