`
不平凡的人
  • 浏览: 33359 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

JDBC连接数据库

阅读更多

      最近两天学习了一下数据库的知识,那就简单的谈谈JDBC对数据库的连接吧。

      首先, 要清楚JDBC是个什么东西------(java database connectivity standard)它是基于java连接数据库的一个接口。然而它本身并不能够操作数据库,它必须依赖数据库厂商提供的符合JDBC规范的JDBC驱动程序才能操作数据库。

       其次:这里我写了四个包分别实现不同的功能,1>connect的包用于实现jdbc连接数据库的操作;2>userInfo的包实现的表中字段属性,以及属性的set/get方法;3>dao的包主要实现应用程序对sql语句的执行也就是对数据库值得操作 (值得注意的是:应用程序只能实现对数据库中值得操作,并不能改变表的结构,所以sql语句只有四种:insert/delete/update/select)4>test包实现测试功能

 

JDBC操作数据库的步骤:

1.装载数据库的驱动

两种方法:

 

1>动态的方法(Class.forName())的方法

Class.forName("com.mysql.jdbc.Driver");

 

2>静态创建JDBC驱动

Driver  myDriver = com.mysql.jdbc.Driver();

DriverManager.registerDriver(myDriver);

 

要注意的是:驱动写好后要将一个.jar的驱动包导入到该工程中,否则出现找不到驱动的错误。

 

2.建立数据库的连接

首先我们可以这样思考,我们在连接服务器的时候需要的是什么东西。是不是需要一个IP地址和Port端口号来实现客户端对服务器的连接...同样的道理,连接数据库也是一样的

需要的信息:

1>数据库的服务器名:默认写localhost

2>端口号:默认3306

3>数据库的名字:

4>用户名,密码

String user = "root";

String password = "*****";

 //MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值

String url = "jdbc:mysql://localhost:3306/netjava?"+"characterEncoding=UTF8";

 

3.连接数据库,并实现应用程序对数据库值得操作

代码如下:

 

//连接数据库的方法
	public static Connection connectSql(){
		
		//自己的账户密码
		String user = "root";
		String password = "035012";
		
		//JDBC连接数据库需要端口号IP地址以及数据库的名字
		String url = "jdbc:mysql://localhost:3306/netjava?";
		
		try {
			//首先需要动态驱动
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("Mysql驱动安装成功了!");
			
			//现在开始连接数据库
			con = DriverManager.getConnection(url, user, password);
			System.out.println("Mysql连接成功了!");
			
		} catch (ClassNotFoundException e) {
		e.printStackTrace();
		
		} catch (SQLException e) {
			System.out.println("Mysql连接失败了!");
		e.printStackTrace();
		}
		
		return con;
	}

 

 第二步,实现userInfo中的信息

就是,你自己所建的表中的字段,字段的set/get方法,代码就不写了。

 

第三步,应用程序对sql语句的执行过程:

//应用程序的数据导入到数据库的方法
public void dao(UserInfo use){
		
	//导入到数据库的SQL语句
//       sql = "insert into student(sno,sname,step) values("+use.getSno()+",'"+use.getSname()+"','"+use.getStep()+"')";

//      sql = "update student set sname = '"+use.getSname()+"',step = '"+use.getStep()+"' where sno = 2";
 
        sql = "delete from student where sno = "+use.getSno()+" ";        
	//将SQL语句插入到数据库的操作
	try {
		Statement stat = ConnectSql.connectSql().createStatement();
			
//		stat.execute(sql);//插入
//		stat.execute(sql);//更新
		stat.execute(sql);//删去
		System.out.println("学生的基本信息被插入成功了!");
				
		//返回结果的集合
		sql = "select *from student";
		rset = stat.executeQuery(sql);
		while(rset.next()){
		//输出查询的结果
		System.out.println(rset.getInt("sno")+"\t"+rset.getString("sname")+"\t"+rset.getString("step"));
		}
			
		} catch (SQLException e) {
		e.printStackTrace();
		}
	}

 我自己当时犯了一个错误就是将use.getSno()的方法直接放到values()中了然后出现了该方法不存在的错误...因此,写该方法values("+use.getSno()+");

 

第四步:就是测试类了,这里就不多做叙述了。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics