try{
Class.forName("com.mysql.jdbc.Driver");//加载驱动程序;
//class是java.long中的一个类,该类通过调用静态方法forName建立JDBC-ODBC桥接器,即加载驱动程序。
//2.获取数据库连接
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/newsdb?useUnicode=true&characterEncoding=utf-8","root","root");//(url,user,password)
//DriverManager位于JDBC的管理层作用在用户和驱动程序之间
//3.发送SQL语句执行对象
Statement stm = con.createStatement();
//4.建立SQL语句
String sql = "select * from news_users where uname = '"+uname+"' and upwd = '"+upwd+"'";
//5.执行SQL,返回查询结果哦【建立ResultSet(结果集)对象;并执行SQL语句】
ResultSet rs = stm.executeQuery(sql);
//判断查询结果是否有数据
if(rs.next()){
flag = true;
}
}catch(Exception e){
e.printStackTrace();
flag = false;//登录成功标志,ture
}finally{
if(con != null){
con.close();//释放资源
}
}
JDBC提供了3个类向数据库发送SQL语句
1、statament
对象创建方法:connection的creatStatement方法,用于发送不带参的SQL语句,对数据了进行具体操作,如查询,修改等。在执行一个SQL查询语句前,必须使用creatStatement方法建立一个statement对象
如代码中的,stm就是一个对象。
2、prepareStatement
prepareStatement类的对象由Connecton 的prepareStatement方法创建,它用来执行带或不带IN参数的预编译SQL语句。
statement对象在每次执行SQL语向时都将该语句发送给数据库,所以执行效率比较低,而prepareStatement对象预编译过,所以
执行速度比Statement 快。因此多次执行的SQL 语句常被创建成PrepartStatemen 对象。例如:
Connection conn=DriverManager.getConnection ("jdbc:odbc;bookshoplk","sa","") ;
PrepareStatement pstmt = conn.PrepareStatement ("SELECT * FROM booktable") ;
3、CallableStatement
CallableStatement 类的对象由Connection 的prepareCall方法创建,它用来执行 数据库已存储过程的调用。例如:
Conmection con = DriverManager.getConnection ("jdbc:odbc;bookshoplk","sa","") ;
callableStatement cstmt = conn.PrepareCall("{call getData(?,?)}");
其中.getData 是存储过的过程名。“?”表示: IN、OUT 或INOUT。