java连接数据mysql
材料:
myEclipse ,MySQL,mysql数据库的jdbc驱动包( http://www.mysql.com/downloads/mysql/ )
1.配置环境
将mysql连接jar放到例如lib这一个文件夹中(myEclipse中建立),然后点击"构建路径">"用作源文件夹";这里jar文件就顺利引入了.
2.实践
3.
建立数据库连接的过程:
1)加载数据库驱动,即Class.forName(dirver)
2)建立数据库连接,即DirverManager.getConnection("jdbc:mysql://127.0.0.1:3306/scutcs","root","root");
注:DirverManager是一个驱动管理器,内部有一个驱动注册表,可以向内部注册JDBC驱动
3)创建执行SQL的语句(Statement)
4)执语句.
5)处理执行的结果(也就是显示啦)
6)释放资源.
4.
(1)注册JDBC驱动
三种方式:
a)Class.forName("com.mysql.jdbc.Driver"); //常用的方法.
b)DirverManager.registerDirver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
虽然不会对具体的驱动类产生依赖;但注册不太方便,所以很少使用。
(2)建立Connection
Connection conn = DirverManager.getConnection ("jdbc:mysql://127.0.0.1:3306/scutcs","user","password");
(3)Statement 和PreparedStatement
Statement 是一个SQL执行器,可以用来执行静态的SQL语句.
Statment st = conn.createStatement();
st.executeQuery(sql);
PreparedStatement 可以防止SQL语句注入.
String sql="select * from table_name where col_name=?";
PreparedStatement ps = conn.PreparedStatement(sql);
ps.setString(1,"col_value");
ps.executeQuery(); //获取结果集
(4)结果集ResultSet的处理
ResultSet rs = statement.executeQuery(sql);
while(rs.next())
{
rs.getString("col_name");
rs.getInt("col_name");
//..
}
(5)释放资源
在使用完之后,必须关闭ResultSet , Statement无所谓,只要Connection关闭了 Statement就会自动关闭.
例如:
rs.close(); //关闭 ResultSet
conn.close(); //关闭 Connection
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class StudentDBTest { public static void main(String[] args) { try{ //第一个种 Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/scutcs","root","root"); //第二个中,因为有两个驱动 //Class.forName("com.mysql.jdbc.Driver");//加载驱动 //Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/scutcs","root","root"); //statement用来执行sql语句 Statement statement = con.createStatement();
//结果集 ResultSet rs = statement.executeQuery("select * from student"); System.out.println("SNO"+"\t"+"SNAME"+"\t"+"BDATE"+"\t"+"HEIGHT"); System.out.println("------------查询结果结果------------"); String name=null , date=null; int age; while(rs.next()) { name = rs.getString("sname"); date = rs.getString("bdate"); age = rs.getInt("HEIGHT"); name = new String(name.getBytes("ISO-8859-1"),"GB2312"); System.out.println(rs.getString("sno") + "\t" + name + "\t" + date + "\t" + age); }
//释放资源 rs.close(); con.close(); }catch(ClassNotFoundException e){ //捕获异常并且输出堆栈信息 System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); }catch(SQLException e) { e.printStackTrace(); } catch(Exception e) { e.printStackTrace(); } } }
//student.sql # # Structure for table "student" # DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `SNO` char(7) NOT NULL, `SNAME` varchar(8) NOT NULL, `SEX` char(2) NOT NULL, `BDATE` date NOT NULL, `HEIGHT` decimal(5,2) DEFAULT ‘0.00‘, PRIMARY KEY (`SNO`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk; # # Data for table "student" # /*!40000 ALTER TABLE `student` DISABLE KEYS */; INSERT INTO `student` VALUES (‘1‘,‘admin‘,‘男‘,‘2015-04-15‘,12.00),(‘2‘,‘root‘,‘女‘,‘2015-04-15‘,14.00),(‘3‘,‘ZhangYl‘,‘男‘,‘2015-05-31‘,20.00),(‘4‘,‘Lisin‘,‘女‘,‘2015-05-14‘,21.00),(‘5‘,‘lisi‘,‘男‘,‘2015-05-22‘,20.00); /*!40000 ALTER TABLE `student` ENABLE KEYS */;
参考:
各种数据库的驱动名和连接地址格式:
1、Oracle8/8i/9i数据库(thin模式)
数据库驱动名: oracle.jdbc.driver.OracleDriver
数据库连接地址:jdbc:oracle:thin:@localhost:1521:orcl //orcl为数据库的SID
2、DB2数据库
数据库驱动名: com.ibm.db2.jdbc.app.DB2Driver ").newInstance()
数据库连接地址:jdbc:db2://localhost:5000/sample" //sample为你的数据库名
3、Sql Server7.0/2000数据库
数据库驱动名: com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance()
数据库连接地址:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" //mydb为数据库
4、Sybase数据库
数据库驱动名: com.sybase.jdbc.SybDriver").newInstance()
数据库连接地址:jdbc:sybase:Tds:localhost:5007/myDB" //myDB为你的数据库名
5、Informix数据库
数据库驱动名: com.informix.jdbc.IfxDriver").newInstance();
数据库连接地址:jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword" //myDB为数据库名
6、MySQL数据库
要下载mysql-connector-java-5.1.13.zip,解压后,将mysql-connector-java-5.1.13-bin.jar拷贝到jdk的lib下,并将其目录添加到classpath中。
数据库驱动名: org.gjt.mm.mysql.Driver").newInstance() 或者"com.mysql.jdbc.Driver"都可以,因为有两个Driver.java。
数据库连接地址:jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1 //myDB为数据库名
7、PostgreSQL数据库
数据库驱动名: org.postgresql.Driver").newInstance()
数据库连接地址:jdbc:postgresql://localhost/myDB //myDB为数据库名
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。