1、pom.xml引mysql和sql server依賴
創(chuàng)新互聯(lián) - 成都棕樹機(jī)房,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),成都棕樹機(jī)房,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬,四川老牌IDC服務(wù)商
2、application.yml配置mysql和sql server連接數(shù)據(jù)源的信息
3、創(chuàng)建DataSourceConfig.java工具類
4、創(chuàng)建mysql數(shù)據(jù)源配置工具類MySqlConfig.java
5、創(chuàng)建sql server數(shù)據(jù)源配置工具類SqlServerConfig.java
如果您有什么好的想法與方法,歡迎在評(píng)論區(qū)留言,我們一起討論~
如果編程風(fēng)格跟閣下不同,請(qǐng)摘取有用的...
(需要驅(qū)動(dòng)的JAR包 地址我就不在提供了 網(wǎng)上有)
1、
public final class ProUtil//這是一個(gè)終態(tài)工具類不能被繼承{
private static Connection conn=null;
private Connect()//私有的構(gòu)造函數(shù),對(duì)象不能被new出來{}
public static Connection getConnection()//返回一個(gè)連接對(duì)象{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
[conn=new Connection(); 這里需不需要new一下 我也不敢確定,我現(xiàn)在都是用中間件來連數(shù)據(jù)庫的,很少用JDBC]
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=qian");
return conn;
}
}
2、
如果求和不用SUM的話 我就只有把數(shù)據(jù)都讀出來再加咯
得到COL1的值 用subString截取字符串 得到第一個(gè)字符 A、B
然后用 like 進(jìn)行模糊查詢 分別得到所有以 A、B開頭的COL2數(shù)據(jù) 并保存在LIST里面 然后對(duì)LIST進(jìn)行循環(huán)+ 就可以得到所有以COL1首字符開頭的記錄的COL2的和了
3、跟2問差不多 就是把subString 的參數(shù)改一下就行了
希望對(duì)你有幫助
Java連接sqlserver需要一下jar包:
1.msbase.jar //底層連接類
2.mssqlserver.jar //驅(qū)動(dòng)類
3.msutil.jar //工具類
1 將數(shù)據(jù)庫的JDBC驅(qū)動(dòng)加載到classpath中,在基于JAVAEE的WEB應(yīng)用實(shí)際開發(fā)過程中,通常要把目標(biāo)數(shù)據(jù)庫產(chǎn)品的JDBC驅(qū)動(dòng)復(fù)制到WEB-INF/lib下.
2 加載JDBC驅(qū)動(dòng),并將其注冊(cè)到DriverManager中,下面是一些主流數(shù)據(jù)庫的JDBC驅(qū)動(dòng)加裁注冊(cè)的代碼:
//Oracle8/8i/9iO數(shù)據(jù)庫(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
//Sql Server7.0/2000數(shù)據(jù)庫
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
//DB2數(shù)據(jù)庫
Class.froName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
//Informix數(shù)據(jù)庫
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
//Sybase數(shù)據(jù)庫
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
//MySQL數(shù)據(jù)庫
Class.forName("com.mysql.jdbc.Driver").newInstance();
//PostgreSQL數(shù)據(jù)庫
Class.forNaem("org.postgresql.Driver").newInstance();
3 建立數(shù)據(jù)庫連接,取得Connection對(duì)象.例如:
//Oracle8/8i/9i數(shù)據(jù)庫(thin模式)
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
Connection conn=DriverManager.getConnection(url,user,password);
什么是Eclipse連接數(shù)據(jù)庫???你是想程序中連接數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫進(jìn)行操作嗎?好好看看JDBC,下面是例子:
public class MySqlDemo{
public static void main(String args[]){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//1.注冊(cè)驅(qū)動(dòng)
}catch(ClassNotFoundException e){
e.printStackTrace();
}
//建立數(shù)據(jù)庫操作對(duì)象實(shí)例
Connection con=null;//數(shù)據(jù)庫聯(lián)接對(duì)象
Statement stm=null;//數(shù)據(jù)庫表達(dá)式
ResultSet rs=null;//結(jié)果集
try{
//2.建立數(shù)據(jù)庫的連接
//參數(shù)一:連接到數(shù)據(jù)庫的JDBC URL;參數(shù)二:用戶名;參數(shù)三:密碼
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=auto","sa","yourpassword");
//3.建立表達(dá)式
stm=con.createStatement();
//4.執(zhí)行查詢記錄的SQL語句,獲得結(jié)果集
rs=stm.executeQuery("select * from 表名");
//5.遍歷訪問數(shù)據(jù)庫里的記錄
while(rs.next()){
System.out.print(rs.getString("字段名"));
}
}catch(SQLException e){
e.printStackTrace();
}finally{
//關(guān)閉數(shù)據(jù)庫聯(lián)接,釋放資源
try{
rs.close();
}catch(SQLException e){
}
try{
stm.close();
}catch(SQLException e){
}
try{
con.close();
}catch(SQLException e){
}
}
}
}
1、添加引用
using System.Data.SqlClient;
2、建立連接調(diào)用
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫連接字符串");
//數(shù)據(jù)庫連接字符串通常是Data?Source=localhost;Initial?Catalog=數(shù)據(jù)庫名;User?ID=用戶名;Password=密碼
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?string.Format("select?count(*)?from?{0}?where?columName={1}",表明,列值);//構(gòu)造SQL查詢語句?????String.Format?(String,?Object[])?將指定?String?中的格式項(xiàng)替換為指定數(shù)組中相應(yīng)?Object?實(shí)例的值的文本等效項(xiàng)。????????myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
int?count?=?(int)myCommand.ExecuteScalar();
if?(count??0)???
{
//count大于0表示有,調(diào)用自己寫的一個(gè)方法來更新
UpdateData();
}
else
{
小于0表示沒有,調(diào)用這個(gè)方法來插入????????????
InsertData();
}
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
//UpdateData方法????
public?void?UpdateData()
{
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫連接字符串");
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?"用來更新的SQL語句";
myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
}
//InsertData方法?
public?void?InsertData()
{
SqlConnection?myConnection?=?new?SqlConnection("數(shù)據(jù)庫連接字符串");
SqlCommand?myCommand?=?new?SqlCommand();
myCommand.CommandText?=?"用來插入的SQL語句";
myCommand.Connection?=?myConnection;
try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
}
catch?(Exception?ex)
{
Response.Write(ex.ToString());
}
}
-----這些都是基礎(chǔ)的寫法,可以將其封裝在一個(gè)工具類中,方便調(diào)用。
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Configuration;
using?System.Data;
using?System.Data.SqlClient;
namespace?DBUtility
{
public?class?SqlHelper
{
//通過配置文件(app.config:xml)讀取連接字符串
public?static?string?connectionString?=?ConfigurationManager?.ConnectionStrings["ConnectionString"].ConnectionString;
//字段,通過連接字符串獲取連接對(duì)象
private?SqlConnection?con?=?new?SqlConnection(connectionString);
//屬性,判斷連接對(duì)象的狀態(tài)并打開連接對(duì)象
public?SqlConnection?Con
{
get?{
switch?(con.State)
{
case?ConnectionState.Broken:
con.Close();?//先正常關(guān)閉,釋放資源
con.Open();
break;
case?ConnectionState.Closed:
con.Open();
break;
case?ConnectionState.Connecting:
break;
case?ConnectionState.Executing:
break;
case?ConnectionState.Fetching:
break;
case?ConnectionState.Open:
break;
default:
break;
}
return?con;?}
set?{?con?=?value;?}
}
//執(zhí)行存儲(chǔ)過程或者SQL語句并返回?cái)?shù)據(jù)集DataSet
public?DataSet?GetDataSet(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
SqlDataAdapter?da?=?new?SqlDataAdapter(cmd);
DataSet?ds?=?new?DataSet();
da.Fill(ds);
return?ds;
}
//執(zhí)行存儲(chǔ)過程或者SQL語句并返回SqlDatareader
public?SqlDataReader?GetDataReader(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
SqlDataReader?dr?=?cmd.ExecuteReader(CommandBehavior.CloseConnection);
return?dr;
}
//執(zhí)行存儲(chǔ)過程或者SQL語句并返回首行首列(新增方法的主鍵)
public?object?ExecuteScalar(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
return?cmd.ExecuteScalar();
}
//執(zhí)行存儲(chǔ)過程或者SQL語句并返回受影響行數(shù)
public?int?ExecuteNonQuery(string?strSQL,?CommandType?cmdType,?params?SqlParameter[]?values)
{
SqlCommand?cmd?=?PrepareCommand(strSQL,?cmdType,?values);
return?cmd.ExecuteNonQuery();
}
//內(nèi)部方法,實(shí)例化命令對(duì)象并配置相關(guān)屬性
private?SqlCommand?PrepareCommand(string?strSQL,?CommandType?cmdType,params?SqlParameter[]?values)
{
SqlCommand?cmd?=?new?SqlCommand();
cmd.Connection?=?Con;
cmd.CommandText?=?strSQL;
cmd.CommandType?=?cmdType;
cmd.CommandTimeout?=?60;
cmd.Parameters.AddRange(values);
return?cmd;
}
}
}